共用方式為


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

另請參閱