IWICPlanarBitmapSourceTransform::CopyPixels 方法 (wincodec.h)
将像素复制到目标平面中。 由提供的输入参数配置。
如果指定 了 dstTransform、缩放或格式转换, 则 cbStride 是转换后的步幅,并且基于 pDstPlanes 参数的目标像素格式,而不是原始源的像素格式。
语法
HRESULT CopyPixels(
[in] const WICRect *prcSource,
UINT uiWidth,
UINT uiHeight,
WICBitmapTransformOptions dstTransform,
[in] WICPlanarOptions dstPlanarOptions,
const WICBitmapPlane *pDstPlanes,
UINT cPlanes
);
参数
[in] prcSource
类型: const WICRect*
要复制的像素的源矩形。
uiWidth
类型: UINT
用于缩放源位图的宽度。 此参数必须等于可通过 IWICPlanarBitmapSourceTransform:: DoesSupportTransform 获取的值。
uiHeight
类型: UINT
缩放源位图的高度。 此参数必须等于可通过 IWICPlanarBitmapSourceTransform:: DoesSupportTransform 获取的值。
dstTransform
在像素复制之前要执行的所需旋转或翻转。 旋转可以与水平翻转或垂直翻转组合,请参阅 WICBitmapTransformOptions。
[in] dstPlanarOptions
类型: const WICPlanarOptions
用于指定转换的其他配置选项。 有关更多详细信息,请参阅 WICPlanarOptions 。
WIC JPEG 解码器:可以指定 WICPlanarOptionsPreserveSubsampling ,以在降级时保留子采样比率。 默认情况下,JPEG 解码器尝试通过在某些情况下仅缩减 Y 平面来保持质量,将图像更改为 4:4:4 色度子采样。
pDstPlanes
类型: WICBitmapPlane
指定每个分量平面的像素格式和输出缓冲区。 每个平面的平面数和像素格式必须与可通过 IWICPlanarBitmapSourceTransform::D oesSupportTransform 获取的值匹配。
cPlanes
类型: UINT
由 pDstPlanes 参数指定的组件平面数。
返回值
类型: HRESULT
如果不支持指定的缩放、翻转/旋转和平面格式配置,此方法将失败并 WINCODEC_ERR_INVALIDPARAMETER。 可以通过调用 IWICPlanarBitmapSourceTransform::D oesSupportTransform 来检查转换是否受支持。
注解
WIC JPEG 解码器:根据图像的配置色度子采样,源矩形具有以下限制:
Chroma Subsampling | X 坐标 | Y 坐标 | 色度宽度 | 色度高度 |
---|---|---|---|---|
4:2:0 | 2 的倍数 | 2 的倍数 | lumaWidth / 2 向上舍入到最接近的整数。 | lumaHeight / 2 向上舍入到最接近的整数。 |
4:2:2 | 2 的倍数 | 任意 | lumaWidth / 2 向上舍入到最接近的整数。 | lumaHeight |
4:4:4 | 任意 | 任意 | llumaWidth | llumaHeight |
4:4:0 | 任意 | 2 的倍数 | lumaWidth | llumaHeight / 2 向上舍入到最接近的整数。 |
pDstPlanes 参数支持以下像素格式。
平面计数 | 平面 1 | 平面 2 | 平面 3 |
---|---|---|---|
3 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat8bppCb | GUID_WICPixelFormat8bppCr |
2 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat16bppCbCr | N/A |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | wincodec.h |
Library | Windowscodecs.lib |
DLL | Windowscodecs.dll |