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


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 , так как он записывает новые свойства в пустое пространство заполнения вместо повторного кодирования всего изображения.

Ниже приведено несколько ограничений для кодировщика, извлекаемого таким образом:

  • В кодировщике можно использовать только следующие методы:
  • Входной 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

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