IWICBitmapSource::CopyPixels 方法 (wincodec.h)

指示对象生成像素。

语法

HRESULT CopyPixels(
  [in]  const WICRect *prc,
  [in]  UINT          cbStride,
  [in]  UINT          cbBufferSize,
  [out] BYTE          *pbBuffer
);

参数

[in] prc

类型: const WICRect*

要复制的矩形。 NULL 值指定整个位图。

[in] cbStride

类型: UINT

位图的步幅

[in] cbBufferSize

类型: UINT

缓冲区的大小。

[out] pbBuffer

类型: BYTE*

指向缓冲区的指针。

返回值

类型: HRESULT

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

注解

CopyPixels 是两个main图像处理例程之一, (另一个是 Lock) 触发实际处理。 它指示对象根据其算法生成像素 -这可能涉及解码存储在磁盘上的 JPEG 的一部分,复制内存块,甚至分析计算复杂梯度。 算法完全依赖于实现 接口的对象。

调用方可以使用 prc 参数将操作限制为感兴趣的矩形 (ROI) 。 ROI 子矩形必须完全包含在位图的边界中。 指定 NULL ROI 意味着应返回整个位图。

调用方控制内存管理,必须为复制结果提供输出缓冲区 (pbBuffer) ,以及缓冲区的边界 (cbBufferSize) 。 cbStride 参数定义输出缓冲区中两个垂直相邻像素之间的字节计数。 调用方必须确保有足够的缓冲区根据位图的宽度、高度和像素格式以及提供给 copy 方法的子矩形来完成调用。

如果调用方需要执行昂贵 IWICBitmapSource (如 JPEG)的多个副本,建议先创建内存中 IWICBitmap

编解码器开发人员备注

被调用方只能写入输出缓冲区 (每行的第一个 (prc-Width>*bitsperpixel+7) /8 字节,在这种情况下,行是 cbStride 字节) 的连续字符串。

要求

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