Bagikan melalui


Fungsi CreateColorTransformA (icm.h)

Membuat transformasi warna yang dapat digunakan aplikasi untuk melakukan manajemen warna.

Sintaks

HTRANSFORM CreateColorTransformA(
  LPLOGCOLORSPACEA pLogColorSpace,
  HPROFILE         hDestProfile,
  HPROFILE         hTargetProfile,
  DWORD            dwFlags
);

Parameter

pLogColorSpace

Arahkan ke input LOGCOLORSPACEA.

hDestProfile

Tangani ke profil perangkat tujuan. Fungsi ini menentukan apakah HPROFILE berisi informasi profil International Color Consortium (ICC) atau Windows Color System (WCS).

hTargetProfile

Tangani ke profil perangkat target. Fungsi ini menentukan apakah HPROFILE berisi informasi profil ICC atau WCS.

dwFlags

Menentukan bendera untuk menggunakan pembuatan kontrol transformasi. Lihat Keterangan.

Nilai kembali

Jika fungsi ini berhasil, nilai yang dikembalikan adalah handel ke transformasi warna.

Jika fungsi ini gagal, nilai yang dikembalikan adalah NULL. Untuk informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jika profil target adalah NULL, transformasi berubah dari ruang warna logis sumber ke profil tujuan. Jika profil target diberikan, transformasi berubah dari ruang warna logis sumber ke profil target lalu ke profil tujuan. Ini memungkinkan pratinjau output yang dimaksudkan untuk perangkat target pada perangkat tujuan.

Nilai dalam dwFlags dimaksudkan sebagai petunjuk saja. Modul manajemen warna harus menentukan cara terbaik untuk menggunakannya.

Windows Vista: Tiga bendera baru telah ditambahkan yang dapat digunakan dengan dwFlags:

Bendera Deskripsi
PRESERVEBLACK Jika bit ini diatur, mesin transformasi menyisipkan GMMP generasi hitam yang sesuai sebagai GMMP terakhir dalam urutan transformasi. Bendera ini hanya berfungsi dalam transformasi WCS murni.
SEQUENTIAL_TRANSFORM Jika bit ini diatur, setiap langkah dalam alur pemrosesan WCS dilakukan untuk setiap piksel dalam gambar dan tidak ada transformasi warna yang dioptimalkan yang dibangun. Bendera ini hanya berfungsi dalam transformasi WCS murni. Pembatasan: Transformasi yang dibuat dengan set bendera SEQUENTIAL_TRANSFORM hanya dapat digunakan dalam utas tempat transformasi dibuat dan hanya untuk satu panggilan terjemahan warna pada satu waktu. COM harus diinisialisasi sebelum membuat transformasi berurutan dan harus tetap diinisialisasi selama masa pakai objek transformasi.
WCS_ALWAYS Jika bit ini diatur, bahkan transformasi all-ICC akan menggunakan jalur kode WCS.

Catatan

SEQUENTIAL_TRANSFORM secara tidak sengaja dihilangkan dari header icm.h di Windows Vista SDK. Jika Anda ingin menggunakan bendera SEQUENTIAL_TRANSFORM , tentukan di aplikasi Anda sebagai berikut:#define SEQUENTIAL_TRANSFORM 0x80800000

Untuk detailnya, lihat Bendera Pembuatan Transformasi CMM. Semua bendera yang disebutkan di sana didukung untuk semua jenis transformasi, kecuali untuk FAST_TRANSLATE, yang hanya berfungsi dalam transformasi ICC-ke-ICC murni.

Fungsi CreateColorTransform digunakan di luar konteks perangkat. Warna dapat berubah saat mengubah dari profil warna ke profil warna yang sama. Hal ini disebabkan oleh kesalahan presisi. Oleh karena itu, transformasi warna tidak boleh dilakukan dalam keadaan ini.

Tag B2Ax diperlukan untuk profil apa pun yang merupakan target transformasi.

Dukungan transformasi WCS untuk profil ICC ColorSpace terbatas pada profil ruang warna RGB. Jenis profil ICC berikut tidak dapat digunakan dalam transformasi yang diproses CITE, baik transformasi WCS/ICC campuran atau transformasi all-ICC dengan set WCS_ALWAYS :

  • Profil ColorSpace Non-RGB
  • Profil NamedColor
  • profil n-channel (di mana n > 8)
  • Profil DeviceLink
  • Profil abstrak

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header icm.h
Pustaka Mscms.lib
DLL Mscms.dll

Lihat juga