IWICBitmapSourceTransform::CopyPixels 方法 (wincodec.h)

使用提供的输入参数复制像素数据。

语法

HRESULT CopyPixels(
  [in]  const WICRect             *prc,
  [in]  UINT                      uiWidth,
  [in]  UINT                      uiHeight,
  [in]  WICPixelFormatGUID        *pguidDstFormat,
  [in]  WICBitmapTransformOptions dstTransform,
  [in]  UINT                      nStride,
  [in]  UINT                      cbBufferSize,
  [out] BYTE                      *pbBuffer
);

参数

[in] prc

类型: const WICRect*

要复制的像素的矩形。

[in] uiWidth

类型: UINT

用于缩放源位图的宽度。 此参数必须等于可通过 IWICBitmapSourceTransform::GetClosestSize 获取的值。

[in] uiHeight

类型: UINT

缩放源位图的高度。 此参数必须等于可通过 IWICBitmapSourceTransform::GetClosestSize 获取的值。

[in] pguidDstFormat

类型: WICPixelFormatGUID*

应返回像素的所需像素格式的 GUID。

此 GUID 必须是通过 GetClosestPixelFormat 调用获取的格式。

[in] dstTransform

类型: WICBitmapTransformOptions

在像素复制之前要执行的所需旋转或翻转。

转换必须是 DoesSupportTransform 调用支持的操作。

如果指定 了 dstTransform则 nStride转换后的步幅 ,并且基于 pguidDstFormat 像素格式,而不是原始源的像素格式。

[in] nStride

类型: UINT

目标缓冲区的步幅。

[in] cbBufferSize

类型: UINT

目标缓冲区的大小。

[out] pbBuffer

类型: BYTE*

输出缓冲区。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

编解码器开发人员备注

如果为 prc 传入 NULL,则复制整个映像。

有关此方法的编解码器开发人员实现详细信息,请参阅 实现 IWICBitmapSourceTransform

请求多个转换操作时,结果取决于操作的执行顺序。 为了确保编解码器之间的可预测性和一致性,所有编解码器必须以相同的顺序执行这些操作。 这些操作的建议顺序为:

  1. 缩放
  2. Crop
  3. 翻转/旋转

像素格式转换可以随时执行,因为它不会影响其他转换。

第一个参数 prc 用于指定剪裁图像所需的区域。 按照约定,缩放是在剪裁之前执行的,因此,如果要缩放和剪裁图像,则应在缩放图像后确定感兴趣的区域。

如果指定 了 dstTransform ,则步幅是转换后的步幅,并且基于 CopyPixels 调用中指定的 pixelFormat,而不是原始帧的像素格式。

要求

要求
最低受支持的客户端 Windows XP SP2、Windows Vista [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincodec.h
Library Windowscodecs.lib

请参阅

概念性

IWICBitmapSourceTransform

Microsoft Windows 图像处理编解码器

编程指南

参考

示例和代码示例