IWICBitmapFrameEncode::WriteSource 方法 (wincodec.h)

对位图源进行编码。

语法

HRESULT WriteSource(
  [in] IWICBitmapSource *pIBitmapSource,
  [in] WICRect          *prc
);

参数

[in] pIBitmapSource

类型: IWICBitmapSource*

要编码的位图源。

[in] prc

类型: WICRect*

位图源的大小矩形。

返回值

类型: HRESULT

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

注解

如果在调用 WriteSource 之前未调用 SetSize,则使用中国中提供的大小(如果不是 NULL)。 否则,将使用 pIBitmapSource 中给定的 IWICBitmapSource 的大小。

如果在调用 WriteSource 之前未调用 SetPixelFormat,则使用 pIBitmapSource 中给定的 IWICBitmapSource 的像素格式。

如果在调用 WriteSource 之前未调用 SetResolution,则使用 pIBitmapSource 的像素格式。

如果在调用 WriteSource 之前未调用 SetPalette,则会为目标像素格式编制索引,并且 pIBitmapSource 的像素格式与编码器帧的像素格式匹配,则使用 pIBitmapSource 像素格式。

对 GIF 图像进行编码时,如果设置了全局调色板,并且帧级调色板不是由用户或自定义独立软件供应商 (ISV) GIF 编解码器直接设置的,则即使 pIBitmapSource 具有帧级调色板,WriteSource 也将使用该全局调色板对帧进行编码。

从 Windows Vista 开始,只要累积的总源矩形高度与通过 SetSize 设置的相同,就可以进行重复的 WriteSource 调用。

从Windows 8.1开始,源 rect 必须至少是通过 SetSize 设置的维度。 如果源矩形宽度超过 SetSize 宽度,将忽略右侧的额外像素。 如果源矩形高度超过剩余未填充的高度,将忽略底部的额外扫描行。

要求

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

请参阅

概念性

如何编写 WIC-Enabled CODEC

IWICBitmapFrameEncode

Windows 映像组件概述