⚠️ Ini adalah situs terjemahan tidak resmi dan tidak berafiliasi dengan ImageMagick Studio LLC. Untuk informasi resmi, lihat halaman asli (https://imagemagick.org/color-management/).

Karena standardisasi sRGB di internet, sebagian besar format gambar menggunakan sRGB sebagai ruang warna kerja default. Jika ruang warna gambar tidak diketahui dan formatnya adalah gambar 8 hingga 16-bit, mengasumsikan ruang warna sRGB adalah pilihan yang aman. Hal ini juga berlaku untuk skala abu-abu (grayscale); kita mengasumsikan skala abu-abu non-linear. Asumsi ini ditimpa jika format gambar tertentu menyertakan metadata ruang warna dan/atau gamma. ImageMagick mengasumsikan warna linear jika ruang warnanya adalah RGB, bukan sRGB. Anda juga dapat menimpa asumsi ruang warna default dengan profil warna atau opsi -set.

ImageMagick mendukung profil warna, tetapi untuk gambar tanpa profil atau deklarasi ruang warna, ImageMagick mengasumsikan sRGB non-linear. Sebagian besar algoritme pemrosesan gambar mengasumsikan ruang warna linear, sehingga sebaiknya konversikan ke warna linear atau hilangkan fungsi gamma sebelum algoritme pemrosesan gambar tertentu diterapkan. Contohnya,

magick myimage.jpg -colorspace RGB -resize 200% -colorspace sRGB mybigimage.jpg

Untuk menyatakan bahwa gambar adalah RGB linear, bukan sRGB, Anda dapat menggunakan opsi set:

magick myimage.png -set colorspace RGB myRGBimage.png

Perhatikan bahwa menyatakan gambar sebagai linear tidak sama dengan mengonversi gambar tersebut menjadi linear. Menyatakannya sebagai linear hanya mengatur metadata dan tidak mengubah data piksel. Sedangkan mengonversi menjadi linear benar-benar mengubah data piksel, seperti dijelaskan lebih rinci di bawah ini.

Setelah itu, informasi verbose untuk file output akan mencantumkan ruang warna sebagai RGB. Hal ini hanya berfungsi pada jenis gambar yang metadatanya membedakan antara RGB linear dan sRGB non-linear, seperti PNG dan GIF. Oleh karena itu, jika perintah di atas dijalankan dengan format output JPG atau TIF, informasi verbose untuk ruang warna tetap menunjukkan sRGB. Agar output JPG mengenali dengan benar bahwa gambar tersebut adalah RGB linear, sertakan profil warna yang sesuai.

Secara default, mengonversi gambar berwarna menjadi skala abu-abu menghasilkan abu-abu non-linear. Untuk mengonversi ke abu-abu linear, gunakan opsi -set, -intensity, atau -grayscale:

convert myimage.png -colorspace LinearGray myRGBimage.png
convert myimage.png -colorspace RGB -colorspace Gray myRGBimage.png
convert myimage.png -intensity Rec709luminance -colorspace gray myRGBimage.png
convert myimage.png -grayscale Rec709luminance myRGBimage.png

Perhatikan bahwa LinearGray baru tersedia sejak Imagemagick 6.9.9-29 dan 7.0.7-17.

Konsep yang sama diperlukan saat memisahkan kanal. Biasanya, konversi untuk memisahkan setiap kanal dari gambar berwarna sRGB menghasilkan gambar skala abu-abu non-linear yang terpisah. Namun, konsep yang sama dapat diterapkan jika Anda ingin mempertahankan kanal-kanal hasil pemisahan sebagai skala abu-abu linear. Contohnya, perintah berikut menghasilkan kanal skala abu-abu linear.

magick myimage.png -colorspace RGB -separate myimage_channels_%d.png

Saat memisahkan dan menggabungkan kembali kanal, dengan kemungkinan adanya pemrosesan di tengah-tengahnya, penting untuk mengidentifikasi ruang warna yang digunakan, terutama saat penggabungan kembali. Contohnya,

magick myimage.png -separate myimage_channels_%d.png
magick myimage_channels_*.png -combine myimage2.png

Pada contoh di atas, kanal-kanal yang dipisahkan bersifat non-linear, dan default untuk -combine adalah mengasumsikan kanal non-linear. Jadi, hasilnya sama dengan input.

Jika Anda ingin memisahkan menjadi kanal skala abu-abu linear, lalu menggabungkannya kembali menjadi warna non-linear di kemudian hari, mungkin setelah melalui beberapa pemrosesan, gunakan konsep yang sama seperti di atas untuk mempertahankan skala abu-abu linear:

magick myimage.png -set colorspace RGB -separate myimage_channels_%d.png
magick myimage_channels_*.png -set colorspace RGB -combine -colorspace sRGB myimage2.png

Saat mengonversi ke ruang warna lain lalu kembali, seperti antara sRGB dan HSL, kedua perintah berikut menangani kasus pertama untuk kanal non-linear dan kasus kedua untuk kanal linear:

magick myimage.png -colorspace HSL -separate myimage_channels_%d.png
magick myimage_channels_*.png -set colorspace HSL -combine -colorspace sRGB myimage2.png


magick myimage.png -set colorspace RGB -colorspace HSL -separate myimage_channels_%d.png
magick myimage_channels_*.png -set colorspace HSL -combine -colorspace RGB -set colorspace sRGB myimage2.png

Sebagian besar format gambar mengasumsikan ruang warna sRGB (misalnya JPEG, PNG, dll.). Beberapa hanya mendukung RGB linear (misalnya EXR, DPX, CIN, HDR) atau hanya GRAY linear. Beberapa format mendukung CMYK; misalnya JPG mendukungnya, tetapi PNG tidak. Ada pula sejumlah format yang turut mendukung LAB (yaitu CieLAB) (misalnya TIFF, PSD, JPG, JP2). Untuk informasi lebih lanjut, lihat halaman Colorspace dan Format yang didukung.

Saat menentukan warna individual sebagai rgb(...) atau kode heksadesimal, warna-warna tersebut akan tetap diinterpretasikan sebagai non-linear, yaitu sebagai warna sRGB. Namun, jika Anda ingin membuat warna linear, gunakan icc-color(rgb,r,g,b)", dengan r, g, dan b berada dalam rentang 0 hingga 1. Lihat halaman Color.