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 的流。 不能指定输出流。

返回

一个 对象,该对象使用现有 BitmapDecoder 中的数据管理新 BitmapEncoder 的异步初始化。

属性

注解

如果只要使用编码器编辑或写入图像的有限数量的属性,请使用此方法检索编码器。 以这种方式检索的编码器比 CreateForTranscodingAsync 返回的编码器具有性能优势,因为它会将新属性写入空填充空间,而不是再次编码整个图像。

下面是以这种方式检索的编码器的几个限制:

  • 只能在编码器上使用以下方法:
  • 输入 BitmapDecoder 必须是在具有 ReadWrite 访问权限的流上创建的编码器。
  • 并非所有元数据格式都支持快速元数据编码。 支持元数据的本机元数据处理程序是 IFD、Exif、XMP 和 GPS。
  • 元数据块必须有足够的填充来存储您尝试编辑的属性。 如果编码操作因任何原因失败,则必须使用 CreateForTranscodingAsync 编辑元数据并重新编码图像。 重新编码时,还可以添加新填充或其他填充,以便在将来启用就地属性编码。 为此,请创建一个新的 BitmapTypedValue ,其中 Type 设置为 UInt32,值设置为要添加的填充字节数。 典型值为 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

    适用于