Я использую переносное устройство Windows в python с pythoncom и comtypes.
У меня проблемы, потому что, когда я запрашиваю ресурс WPD_RESOURCE_THUMBNAIL, некоторые устройства Android возвращают "квадратный" эскиз, в то время как исходное изображение имеетФормат 16: 9 (или 4: 3 ...).
Затем я попытался запросить ресурс WPD_RESOURCE_DEFAULT, чтобы получить миниатюру из данных EXIF: поэтому нет необходимости читать весь файл, как только яполучить тег EXIF для миниатюры. Я могу остановить чтение и перейти к следующему файлу.
Я могу получить миниатюру из EXIF для самого первого файла.Во втором файле я застреваю в методе GetStream ().Это просто повесить.Я полагаю, потому что IStream из предыдущего вызова не был закрыт / удален.
Есть ли у вас какие-либо идеи о том, как принудительно утилизировать / закрыть этот IStream?
Это то, что я делаю в коде:
optimalTransferSizeBytes, fileStream = resources.GetStream(
self.objectID,
WPD_RESOURCE_DEFAULT,
ctypes.c_ulong(0),
optimalTransferSizeBytes,
pFileStream
)
Заранее благодарю за любые предложения по этому вопросу.
РЕДАКТИРОВАТЬ : Поскольку я не нашел других способов прервать поток и освободить все ресурсы,В итоге я прочитал весь поток для WPD_RESOURCE_DEFAULT.Это немного медленнее, но безопаснее, потому что приложение работает и на больших экранах, а использование эскиза EXIF может привести к ухудшению качества изображения на экране.Поэтому я решил прочитать весь поток для WPD_RESOURCE_DEFAULT для этой цели и ускорить код где-то за пределами этой точки.Спасибо @ShadowRanger за поддержку.