Поделиться через


BitmapEncoder.IsThumbnailGenerated Свойство

Определение

Указывает, создается ли новый эскиз автоматически.

public:
 property bool IsThumbnailGenerated { bool get(); void set(bool value); };
bool IsThumbnailGenerated();

void IsThumbnailGenerated(bool value);
public bool IsThumbnailGenerated { get; set; }
var boolean = bitmapEncoder.isThumbnailGenerated;
bitmapEncoder.isThumbnailGenerated = boolean;
Public Property IsThumbnailGenerated As Boolean

Значение свойства

Boolean

bool

Значение типа , указывающее, будет ли кодировщик точечных рисунков автоматически создавать новый эскиз. Значение по умолчанию равно False.

Комментарии

Если это значение равно true, кодировщик точечных рисунков создаст новый эскиз путем уменьшения масштаба растрового изображения кадра. Размер эскиза определяется свойствами GeneratedThumbnailWidth и GeneratedThumbnailHeight . Если это значение равно false, эскиз не записывается в файл.

Если BitmapEncoder был создан с помощью метода CreateForTranscodingAsync и isThumbnailGenerated имеет значение false, то кодировщик растровых рисунков оставит все существующие данные эскизов нетронутыми. В этом случае, если растровое изображение было изменено до кодирования, выходной файл может иметь эскиз, который не соответствует новому содержимому изображения.

Эскизы кодирования поддерживаются только типы изображений JPEG, TIFF и JPEG-XR. Если формат закодированного изображения не поддерживает эскизы и для параметра IsThumbnailGenerated задано значение true, вызов FlushAsync завершится ошибкой с WINCODEC_ERR_UNSUPPORTEDOPERATION HRESULT. Необходимо перехватить это исключение и повторить кодирование с отключенным созданием эскизов. Если приложение кодирует только форматы изображений, которые поддерживают эскизы, этот шаг можно пропустить.

try
 {
     await encoder.FlushAsync();
 }
 catch (Exception err)
 {
     switch (err.HResult)
     {
         case unchecked ((int) 0x88982F81): //WINCODEC_ERR_UNSUPPORTEDOPERATION
             // If the encoder does not support writing a thumbnail, then try again
             // but disable thumbnail generation.
             encoder.IsThumbnailGenerated = false;
             break;
         default:
             throw err;
     }
 }

 if (encoder.IsThumbnailGenerated == false)
 {
     await encoder.FlushAsync();
 }

Применяется к