CreateColorTransformA 函式 (icm.h)
建立應用程式可用來執行色彩管理的色彩轉換。
語法
HTRANSFORM CreateColorTransformA(
LPLOGCOLORSPACEA pLogColorSpace,
HPROFILE hDestProfile,
HPROFILE hTargetProfile,
DWORD dwFlags
);
參數
pLogColorSpace
輸入 LOGCOLORSPACEA的指標。
hDestProfile
處理目的地裝置的配置檔。 函式會決定 HPROFILE 是否包含國際色彩聯盟 () 或 Windows Color System (WCS) 配置文件資訊。
hTargetProfile
處理目標裝置的配置檔。 函式會判斷 HPROFILE 是否包含 ICC 或 WCS 設定檔資訊。
dwFlags
指定用來控制轉換建立的旗標。 請參閱<備註>。
傳回值
如果此函式成功,則傳回值是色彩轉換的句柄。
如果此函式失敗,則傳回值為 NULL。 如需擴充錯誤資訊,請呼叫 GetLastError。
備註
如果目標配置檔為 NULL,轉換會從來源邏輯色彩空間移至目的地配置檔。 如果指定目標配置檔,轉換會從來源邏輯色彩空間移至目標配置檔,然後移至目的地配置檔。 這允許預覽目的地裝置上目標裝置的輸出。
dwFlags 中的值僅供提示使用。 色彩管理模組必須決定使用它們的最佳方式。
Windows Vista:已新增三個新的旗標,可搭配 dwFlags 使用:
旗標 | 描述 |
---|---|
PRESERVEBLACK | 如果設定此位,轉換引擎會將適當的黑色產生 GMMP 插入為轉換順序中的最後一個 GMMP。 此旗標僅適用於純 WCS 轉換。 |
SEQUENTIAL_TRANSFORM | 如果設定此位,WCS 處理管線中的每個步驟都會針對影像中的每個像素執行,而且不會建置任何優化的色彩轉換。 此旗標僅適用於純 WCS 轉換。限制:使用SEQUENTIAL_TRANSFORM旗標集所建立的轉換只能在建立它的線程中使用,而且一次只能用於一個色彩轉譯呼叫。 在建立循序轉換之前,必須先初始化 COM,而且必須在轉換物件的存留期內保持初始化狀態。 |
WCS_ALWAYS | 如果已設定此位,即使是所有 ICC 轉換也會使用 WCS 程式代碼路徑。 |
注意
SEQUENTIAL_TRANSFORM 意外省略 Windows Vista SDK 中的 icm.h 標頭。 如果您想要使用 SEQUENTIAL_TRANSFORM 旗標,請在應用程式中定義它,如下所示:#define SEQUENTIAL_TRANSFORM 0x80800000
如需詳細資訊,請參閱 CMM 轉換建立旗標。 所有提及的旗標都支援所有類型的轉換,但FAST_TRANSLATE除外,這隻適用於純的 ICC 對 ICC 轉換。
CreateColorTransform 函式會在裝置內容之外使用。 從色彩配置檔轉換成相同的色彩配置檔時,色彩可能會改變。 這是因為精確度錯誤。 因此,在這些情況下不應該執行色彩轉換。
轉換目標的任何配置檔都需要 B2Ax 標記。
對 ICC ColorSpace 設定檔的 WCS 轉換支援僅限於 RGB 色彩空間設定檔。 下列 ICC 設定檔類型不能用於 CITE 處理的轉換中,可能是混合的 WCS/ICC 轉換,或是具有 WCS_ALWAYS 集的 all-ICC 轉換:
- 非 RGB ColorSpace 配置檔
- NamedColor 配置檔
- n 通道設定檔 (其中 n > 8)
- DeviceLink 配置檔
- 抽象配置檔
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | icm.h |
程式庫 | Mscms.lib |
Dll | Mscms.dll |