BitmapEncoder.CreateForInPlacePropertyEncodingAsync(BitmapDecoder) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронно создает новый BitmapEncoder для редактирования свойств и метаданных на месте. Новый кодировщик может изменять свойства растрового изображения только на месте и будет завершаться ошибкой для любых других способов использования.
public:
static IAsyncOperation<BitmapEncoder ^> ^ CreateForInPlacePropertyEncodingAsync(BitmapDecoder ^ bitmapDecoder);
/// [Windows.Foundation.Metadata.RemoteAsync]
static IAsyncOperation<BitmapEncoder> CreateForInPlacePropertyEncodingAsync(BitmapDecoder const& bitmapDecoder);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<BitmapEncoder> CreateForInPlacePropertyEncodingAsync(BitmapDecoder bitmapDecoder);
function createForInPlacePropertyEncodingAsync(bitmapDecoder)
Public Shared Function CreateForInPlacePropertyEncodingAsync (bitmapDecoder As BitmapDecoder) As IAsyncOperation(Of BitmapEncoder)
Параметры
- bitmapDecoder
- BitmapDecoder
BitmapDecoder, содержащий данные изображения для редактирования. Этот параметр необходимо создать в потоке с режимом доступа ReadWrite.
Примечание
Кодировщик выполняет запись в поток, в который был создан исходный BitmapDecoder . Вы не можете указать выходной поток.
Возвращаемое значение
Объект , который управляет асинхронной инициализацией нового BitmapEncoder с использованием данных из существующего BitmapDecoder.
- Атрибуты
Комментарии
Используйте этот метод для извлечения кодировщика, если вы собираетесь использовать его только для изменения или записи ограниченного количества свойств в изображение. Кодировщик, полученный таким образом, может обеспечить более высокую производительность по сравнению с кодировщиком, возвращаемым методом CreateForTranscodingAsync , так как он записывает новые свойства в пустое пространство заполнения вместо повторного кодирования всего изображения.
Ниже приведено несколько ограничений для кодировщика, извлекаемого таким образом:
- В кодировщике можно использовать только следующие методы:
- BitmapEncoder.BitmapProperties.GetPropertiesAsync
- BitmapEncoder.BitmapProperties.SetPropertiesAsync
- BitmapEncoder.FlushAsync Любые другие методы завершатся ошибкой при их вызове.
- Входной BitmapDecoder должен быть кодировщиком, созданным в потоке с доступом ReadWrite .
- Не все форматы метаданных поддерживают быстрое кодирование метаданных. Собственные обработчики метаданных, поддерживающие метаданные: IFD, Exif, XMP и GPS.
- Блок метаданных должен иметь достаточно заполнения для хранения свойств, которые вы пытаетесь изменить.
Если операция кодирования по какой-либо причине завершается сбоем, потребуется использовать CreateForTranscodingAsync для изменения метаданных и повторного кодирования изображения. При повторном кодировании можно также добавить новое или дополнительное заполнение, чтобы включить кодирование свойств на месте в будущем. Для этого создайте новое значение BitmapTypedValue с типом UInt32, а значением Value — число байтов заполнения, которое вы хотите добавить. Обычное значение — 4096 байт. Задайте этот элемент метаданных в одном или нескольких расположениях запросов метаданных в этой таблице.
Формат метаданных Запрос метаданных JPEG Запрос метаданных TIFF, JPEG-XR IFD /app1/ifd/PaddingSchema:Padding /ifd/PaddingSchema:Padding EXIF /app1/ifd/exif/PaddingSchema:Padding /ifd/exif/PaddingSchema:Padding XMP /xmp/PaddingSchema:Padding /ifd/xmp/PaddingSchema:Padding GPS /app1/ifd/gps/PaddingSchema:Padding /ifd/gps/PaddingSchema:Padding Применяется к