BitmapEncoder.CreateForInPlacePropertyEncodingAsync(BitmapDecoder) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
异步创建新的 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 适用于