共用方式為


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

另請參閱