cmTranslateRGBsExt 函数 (icm.h)

将位图从一种定义的格式转换为不同的已定义格式,并定期调用回调函数(如果指定了回调函数),以报告进度并允许调用应用程序终止转换。

语法

BOOL CMTranslateRGBsExt(
  HCMTRANSFORM   hcmTransform,
  LPVOID         lpSrcBits,
  BMFORMAT       bmInput,
  DWORD          dwWidth,
  DWORD          dwHeight,
  DWORD          dwInputStride,
  LPVOID         lpDestBits,
  BMFORMAT       bmOutput,
  DWORD          dwOutputStride,
  LPBMCALLBACKFN lpfnCallback,
  LPARAM         ulCallbackData
);

parameters

hcmTransform

指定要使用的颜色转换。

lpSrcBits

指向要转换的位图的指针。

bmInput

指定输入位图格式。

dwWidth

指定输入位图中每个扫描行的像素数。

dwHeight

指定输入位图中的扫描行数。

dwInputStride

指定从输入位图中一个扫描行的开头到下一个扫描行的开头的字节数。 如果 dwInputStride 设置为零,则 CMM 应假定扫描行已填充为 DWORD 对齐。

lpDestBits

指向要放置转换位图的目标缓冲区。

bmOutput

指定输出位图格式。

dwOutputStride

指定从输入位图中一个扫描行的开头到下一个扫描行的开头的字节数。 如果 dwOutputStride 设置为零,则 CMM 应填充扫描行,使其与 DWORD 对齐。

lpfnCallback

指向 由 CMTranslateRGBsExt 定期调用的应用程序提供的回调函数的指针,以报告进度并允许调用进程取消转换。 (请参阅 ICMProgressProcCallback.)

ulCallbackData

传递回回调函数的数据,例如,用于标识报告进度的转换。

返回值

如果此函数成功,则返回值为 TRUE

如果此函数失败,则返回值为 FALSE ,CMM 应调用 SetLastError ,将最后一个错误设置为 Winerror.h 中定义的有效错误值。

注解

导出此函数需要每个 CMM。

写入目标缓冲区时,CMM 应确保扫描行填充为 DWORD 对齐。

如果输入和输出格式与颜色转换不兼容,则此函数将失败。

如果输入和输出位图格式均为 3 个通道,每个像素 4 个字节(例如BM_xRGBQUADS),则应保留第四个字节并将其复制到输出缓冲区。

如果回调函数返回零,应取消处理, CMTranslateRGBsExt 应返回零以指示失败;输出缓冲区可以部分填充。

请注意,此函数必须支持就地转换。 也就是说,每当输出的内存占用小于或等于输入的内存占用量时,此函数必须能够转换位图颜色,即使源缓冲区和目标缓冲区相同。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 icm.h

另请参阅