CMTranslateRGBs 函式 (icm.h)
[CMTranslateRGBs 已不再可供 Windows Vista 使用。]
使用色彩轉換,將點陣圖從一個 色彩空間 轉譯到另一個色彩空間。
語法
BOOL CMTranslateRGBs(
HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits,
BMFORMAT bmInput,
DWORD dwWidth,
DWORD dwHeight,
DWORD dwStride,
LPVOID lpDestBits,
BMFORMAT bmOutput,
DWORD dwTranslateDirection
);
參數
hcmTransform
指定要使用的色彩轉換。
lpSrcBits
指向要轉譯的點陣圖。
bmInput
指定輸入點圖格式。
dwWidth
指定輸入位圖中每個掃描行的像素數目。
dwHeight
指定輸入點陣圖中的掃描列數。
dwStride
指定從一個掃描行的開頭到輸入位圖中下一個開頭的位元元組數目。 如果 dwStride 設定為零,CMM 應該假設掃描行已填補,以便對齊 DWORD。
lpDestBits
指向要在其中放置轉譯位圖的目的地緩衝區。
bmOutput
指定輸出點圖格式。
dwTranslateDirection
指定用於轉譯的轉換方向。 此參數必須採用下列其中一個值。
值 | 意義 |
---|---|
CMS_FORWARD | 使用正向轉換 |
CMS_BACKWARD | 使用反向轉換 |
傳回值
從 Windows Vista 開始,預設的 CMM (Icm32.dll) 會傳回 FALSE , 而 GetLastError 會回報ERROR_NOT_SUPPORTED。
Windows Server 2003、Windows XP 和 Windows 2000:
如果此函式成功,則傳回值為 TRUE。
如果此函式失敗,則傳回值為 FALSE。 如果函式未成功,CMM 應該呼叫 SetLastError ,將最後一個錯誤設定為 Winerror.h 中定義的有效錯誤值。
備註
從 Windows Vista 開始,不再需要 CMM 實作器來實作此方法。
Windows Server 2003、Windows XP 和 Windows 2000:
匯出此函式需要每個 CMM。
寫入目的地緩衝區時,CMM 應該確定掃描行已填補為 DWORD 對齊。
如果輸入和輸出格式與色彩轉換不相容,則此函式會失敗。
如果輸入和輸出位圖格式都是 3 通道,則每圖元 4 個字節,如同在BM_xRGBQUADS的情況下,應該保留第 4 個字節並複製到輸出緩衝區。
請注意,此函式必須支援就地翻譯。 也就是說,每當輸出的記憶體使用量小於或等於輸入的記憶體使用量時,即使來源和目的地緩衝區相同,此函式也必須能夠轉譯位圖色彩。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | icm.h |