Freigeben über


CreateColorTransformW-Funktion (icm.h)

Erstellt eine Farbtransformation, mit der Anwendungen die Farbverwaltung durchführen können.

Syntax

HTRANSFORM CreateColorTransformW(
  LPLOGCOLORSPACEW pLogColorSpace,
  HPROFILE         hDestProfile,
  HPROFILE         hTargetProfile,
  DWORD            dwFlags
);

Parameter

pLogColorSpace

Zeiger auf die LOGCOLORSPACEA-Eingabe.

hDestProfile

Handle mit dem Profil des Zielgeräts. Die Funktion bestimmt, ob HPROFILE Profilinformationen des International Color Consortium (ICC) oder des Windows Color System (WCS) enthält.

hTargetProfile

Handle mit dem Profil des Zielgeräts. Die Funktion bestimmt, ob das HPROFILE ICC- oder WCS-Profilinformationen enthält.

dwFlags

Gibt Flags an, die für die Erstellung der Transformation verwendet werden sollen. Siehe Hinweise.

Rückgabewert

Wenn diese Funktion erfolgreich ist, ist der Rückgabewert ein Handle für die Farbtransformation.

Wenn diese Funktion fehlschlägt, ist der Rückgabewert NULL. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Hinweise

Wenn das Zielprofil NULL ist, wechselt die Transformation vom logischen Quellfarbraum zum Zielprofil. Wenn das Zielprofil angegeben wird, wechselt die Transformation vom logischen Quellfarbraum zum Zielprofil und dann zum Zielprofil. Dies ermöglicht die Vorschau der Ausgabe, die für das Zielgerät auf dem Zielgerät vorgesehen ist.

Die Werte in dwFlags dienen nur als Hinweise. Das Farbverwaltungsmodul muss bestimmen, wie sie am besten verwendet werden können.

Windows Vista: Drei neue Flags wurden hinzugefügt, die mit dwFlags verwendet werden können:

Flag Beschreibung
PRESERVEBLACK Wenn dieses Bit festgelegt ist, fügt die Transformations-Engine den entsprechenden GMMP der schwarzen Generation als letzten GMMP in die Transformationssequenz ein. Dieses Flag funktioniert nur in einer reinen WCS-Transformation.
SEQUENTIAL_TRANSFORM Wenn dieses Bit festgelegt ist, wird jeder Schritt in der WCS-Verarbeitungspipeline für jedes Pixel im Bild ausgeführt, und es wird keine optimierte Farbtransformation erstellt. Dieses Flag funktioniert nur in einer reinen WCS-Transformation. Einschränkungen: Eine transformation, die mit dem SEQUENTIAL_TRANSFORM Flagsatz erstellt wurde, kann nur in dem Thread verwendet werden, für den sie erstellt wurde, und nur für jeweils einen Farbübersetzungsaufruf. COM muss vor dem Erstellen der sequenziellen Transformation initialisiert werden und muss für die Lebensdauer des Transformationsobjekts initialisiert bleiben.
WCS_ALWAYS Wenn dieses Bit festgelegt ist, verwenden selbst alle ICC-Transformationen den WCS-Codepfad.

Hinweis

SEQUENTIAL_TRANSFORM wurde versehentlich im icm.h-Header im Windows Vista SDK ausgelassen. Wenn Sie das SEQUENTIAL_TRANSFORM-Flag verwenden möchten, definieren Sie es in Ihrer Anwendung wie folgt: #define SEQUENTIAL_TRANSFORM 0x80800000

Weitere Informationen finden Sie unter Flags zur Erstellung von CMM-Transformationen. Alle dort erwähnten Flags werden für alle Arten von Transformationen unterstützt, mit Ausnahme von FAST_TRANSLATE, die nur in einer reinen ICC-zu-ICC-Transformation funktioniert.

Die CreateColorTransform-Funktion wird außerhalb eines Gerätekontexts verwendet. Farben können sich verschieben, wenn sie von einem Farbprofil in dasselbe Farbprofil transformiert werden. Dies ist auf Genauigkeitsfehler zurückzuführen. Daher sollte unter diesen Umständen keine Farbtransformation durchgeführt werden.

Die B2Ax-Tags sind für jedes Profil erforderlich, das das Ziel einer Transformation ist.

Die WCS-Transformationsunterstützung für ICC ColorSpace-Profile ist auf RGB-Farbraumprofile beschränkt. Die folgenden ICC-Profiltypen können nicht in einer CITE-verarbeiteten Transformation verwendet werden, entweder in einer gemischten WCS/ICC-Transformation oder einer all-ICC-Transformation mit WCS_ALWAYS festgelegt:

  • Nicht-RGB ColorSpace-Profile
  • NamedColor-Profile
  • n-Kanalprofile (wobei n > 8)
  • DeviceLink-Profile
  • Abstrakte Profile

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile icm.h
Bibliothek Mscms.lib
DLL Mscms.dll

Weitere Informationen