В моем приложении мне нужно извлечь миниатюрное изображение из файлов, выбранных с помощью средства выбора файлов.В следующей строке выдается исключение COM, когда средство выбора файлов возвращает файл, в котором отсутствует эскиз, например пустой файл * .bmp.Как мне избежать этого?
StorageItemThumbnail t = await f.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.DocumentsView);
РЕДАКТИРОВАТЬ: дополнительные сведения и я имел в виду .bmp not .png извините ...
Воспроизвести:
- Rightщелкните в любом каталоге в режиме рабочего стола Metro, в контекстном меню выберите New-> Bitmap Image
- . В тестовой программе запустите File Picker, а затем вызовите GetThumbnailAsync для возвращенного файла;Вы получаете исключение ниже.
Сведения об исключении:
System.Runtime.InteropServices.COMException не было обработано кодом пользователя
HResult = -2147467259
Сообщение = Ошибка HRESULT E_FAIL был возвращен после вызова компонента COM.
Source = mscorlib
ErrorCode = -2147467259 StackTrace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в системе.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult () --- некоторые вещи пропущены ---
InnerException: null
* 1025 Кодзапустить средство выбора файлов:
public static async Task<IReadOnlyList<StorageFile>> PickMulipleFilesAsync()
{
FileOpenPicker picker = new FileOpenPicker();
picker.SuggestedStartLocation = PickerLocationId.Desktop;
picker.FileTypeFilter.Add("*");
var files = await picker.PickMultipleFilesAsync();
return files;
}