İçeriğe geç
getnextpdf.com

Renk, profiller ve sizin kırmızınızın neden benim kırmızım olmadığı

Spec: ISO 32000-2, §8.6Spec: ISO 15930, PDF/X

Bir PDF’deki renk sabit bir duyum değildir. Bir yönergedir ve bu yönergenin sizin dizüstü bilgisayarınızda, bir telefonda ve bir baskı makinesinde aynı kırmızıyı üretip üretmemesi, tümüyle rengin nasıl tanımlandığına bağlıdır. Bu sayfa, yalnızca bir aygıta ne yapacağını söyleyen bir renk ile gerçekte nasıl görünmesi gerektiğini ifade eden bir renk arasındaki farkı konu alır.

Bir marka kırmızısı seçin. Bir kez ayarlayın. Şimdi ona ucuz bir ofis monitöründe, ardından aydınlık bir odada bir OLED telefonda, sonra da bir ofset baskıdan çekilmiş hâliyle bakın. Üç kırmızı. Bazen apaçık farklı üç kırmızı. Kimse sayıyı değiştirmedi; sayı, hiçbir zaman hikâyenin tamamı değildi.

Gündelik bir belge için bu, omuz silkilecek bir şeydir. Bir logo, düzenlemeye tabi bir etiket, bir kataloğdaki bir fotoğraf ya da onlarca yıl ayakta kalması amaçlanan bir kayıt için ise kayan bir renk bir kusurdur. Bedeli soyut değildir: bir yeniden baskı, reddedilen bir prova ya da sayfaları artık özgünlerine uymayan bir arşivdir. Çözüm daha iyi bir sayı değildir. Sayının ne anlama geldiği konusunda doğruyu söylemektir.

  • Aygıt rengi, bir rengi bir aygıtın aldığı denetim değerleriyle adlandırır; böylece sonuç, o aygıtın bunlardan ne çıkardığıyla belirlenir (Spec: ISO 32000-2, §8.6.4). DeviceRGB, DeviceCMYK ve DeviceGray aygıt renk uzaylarıdır. Aynı sayılar, farklı donanım, farklı renk.
  • Kalibre edilmiş, ICC tabanlı renk, bu sayıları gömülü bir profil aracılığıyla ölçülmüş, aygıttan bağımsız bir referansa bağlar (Spec: ISO 32000-2, §8.6.5.5). Artık belge, yalnızca bir denetim değerleri tarifi değil, amaçlanan rengi yeniden üretmeye yetecek bilgiyi taşır.
  • Bir ICC profili, işte bu ölçülmüş eşlemedir: bir aygıtın sayılarının — ya da standart bir renk uzayının veya çıktı koşulunun sayılarının — bir insan gözünün algılayacağı renkle nasıl ilişkilendiğini, aygıttan bağımsız bir bağlantı uzayına bağlayarak gösterir.
  • Bir oluşturma amacı, bir renk bir aygıtın erişiminin dışında kaldığında ne yapılacağına ilişkin politikadır; çünkü hiçbir aygıt her rengi gösteremez.
  • Bir çıktı amacı, belgenin en baştan, hazırlandığı çıktı koşulunu bildirmesidir (Spec: ISO 32000-2, §14.11.5). Baskı düzeyindeki (PDF/X) ve arşivleme (PDF/A) iş akışları buna dayanır.

Sorunun dürüst sürümüyle başlayın. DeviceRGB bir renk içermez. 0 ile 1 arasında üç sayı içerir ve bir ekranın bunları ışığa çevireceğine dair söylenmemiş bir varsayım barındırır. Farklı arka aydınlatmalara, farklı panellere ve farklı kalibrasyona sahip iki ekran, aynı üç sayıyı gözle görülür biçimde farklı ışığa çevirir. Bu, PDF’deki bir hata değildir. “Aygıt rengi”nin anlamı budur ve standart bu konuda açık sözlüdür: aygıt renk uzayları, mutlak bir görünümle değil, bir aygıtın aldığı değerlerle tanımlanır (Spec: ISO 32000-2, §8.6.4).

Kalibre edilmiş renk, bu boşluğu bir referans ekleyerek kapatır. Bir ICC profili, bir aygıtı veya renk uzayını — bir monitörü, bir yazıcıyı, bir baskı makinesini ya da sRGB gibi standart bir uzayı — karakterize etmenin ve onun ham sayılarının, insan görüşüne yaklaşan, aygıttan bağımsız bir bağlantı uzayındaki renkle nasıl ilişkilendiğini kaydetmenin sonucudur. Bu profili gömün ve sayılar özel bir lehçe olmaktan çıkar; herkesin üzerinde uzlaşabileceği bir şeye bağlı bir ifadeye dönüşür. ICC tabanlı bir renk uzayının taşıdığı şey tam olarak budur (Spec: ISO 32000-2, §8.6.5.5): renk, artı onun ne anlama geldiğini söyleyen ölçülmüş eşleme.

İkinci, kaçınılmaz bir kıvrım daha vardır. Bir baskı makinesinin basabileceği renk kümesi, bir telefonun gösterebileceği kümeyle aynı değildir ve ikisi de insan gözünün görebileceği tam küme değildir. Bir renk, bir hedef aygıtın yeniden üretebileceğinin dışına düştüğünde bir seçim yapılmalıdır: onu en yakın erişilebilir renge kırpmak ya da bir renk aralığının tamamını birlikte kaydırarak ilişkilerinin bozulmadan kalmasını sağlamak. İşte bu seçim oluşturma amacıdır — yuvarlamanın bir kazası değil, iş için seçilmiş kasıtlı bir politika. Bir fotoğraf ile bir kurumsal logo çoğu zaman farklı amaçlar ister; çünkü biri pürüzsüz geçişleri, diğeri ise tam bir renk numunesini tutturmayı önemser.

Son olarak, belirli bir yere gidecek bir belge bunu beyan edebilir. Bir çıktı amacı, dosyanın hazırlandığı çıktı koşulunu bildirmesidir — tipik olarak bir baskı koşulunu veya aygıtı adlandıran, gömülü bir ICC hedef profili (Spec: ISO 32000-2, §14.11.5). Bu, bir yazıcıya bir dosya vermekle, “Ben bu baskı makinesi için yapıldım” diyen bir dosya vermek arasındaki farktır. Baskı değişim profilleri bunu zorunlu kılar: bir PDF/X dosyasının (ISO 15930 ailesi) bir çıktı amacı taşıması gerekir (Spec: ISO 15930, PDF/X) ve PDF/A da aynı mekanizmaya dayanır; böylece arşivlenmiş bir dosyanın aygıta bağımlı renkleri, kökenini oluşturan ortam çoktan yok olduktan sonra bile, gelecekte uzun süre yorumlanabilir kalır.

  1. Name the colourChoose a colour space. DeviceRGB/CMYK/Gray name control values; an ICC-based space anchors them to a device-independent reference (ISO 32000-2 §8.6).
  2. Anchor it (optional but decisive)Embed an ICC profile so the numbers carry their measured meaning, not just a device recipe (ISO 32000-2 §8.6.5.5).
  3. Reconcile to the deviceA rendering intent decides what happens to colours the target device cannot reproduce — clip the nearest, or shift the range to preserve relationships.
  4. Declare the destinationAn output intent states the output condition the document was prepared for, as PDF/X and PDF/A workflows require (ISO 32000-2 §14.11.5).
Bir rengin kodunuzdan sadık bir sonuca nasıl yol aldığı: bir renk uzayında adlandırılır, isteğe bağlı olarak bir ICC profiliyle ölçülmüş bir referansa bağlanır, bir oluşturma amacı aracılığıyla hedef aygıtla uzlaştırılır ve belgenin bildirdiği çıktı koşuluna göre yorumlanır.

NextPDF’in bu zincirdeki işi, standartlara uygun olmaktır: renk uzaylarını, gömülü profilleri ve çıktı amaçlarını biçimin tanımladığı şekilde yazmak; böylece akış aşağısındaki bir araç — bir yazıcının RIP’i, bir arşivleme doğrulayıcısı, bir görüntüleyici — tam olarak amaçlananı okur. Beyanları üretir; aygıt gibi davranmaya kalkışmaz.

Aşağıdaki yapı, belirli bir API’yi değil, kararı taslak hâlinde gösterir. Asıl nokta, hedefin tahmin edilmek yerine beyan edilmesidir.

<?php
declare(strict_types=1);
use NextPDF\Contracts\PdfDocumentInterface;
/**
* Prepare a print-bound document that declares its intended output condition.
*
* The colour numbers alone do not fix the appearance. Declaring the output
* intent — the print condition the file was built for — is what lets a press
* interpret those numbers faithfully (ISO 32000-2 §14.11.5).
*
* @param PdfDocumentInterface $doc A composed document.
* @param string $iccProfileBytes The destination ICC profile for the
* target print condition.
*
* @return string The document bytes, carrying a declared output intent.
*/
function prepareForPress(
PdfDocumentInterface $doc,
string $iccProfileBytes,
): string {
// Declare the output condition explicitly. The document now states the
// device/print condition it was prepared for, instead of leaving its
// device colours open to interpretation.
$doc->setOutputIntent(
identifier: 'Custom press condition',
iccProfile: $iccProfileBytes,
);
return $doc->output();
}

Renkler değişmedi. Değişen şey, dosyanın artık bunların nasıl görünmesi gerektiğini söylemesidir; bu da bir baskı makinesinin ya da bir doğrulayıcının üzerine işlem yapabileceği tek şeydir.

“Aynı onaltılık değer, dolayısıyla aynı renk.” Onaltılık değer, bir dizi aygıt denetim değeridir. Bir profil ya da bir çıktı amacı olmadan, mutfağı belirlenmemiş bir tariftir — her mutfakta farklı bir tat verir. İki dosya aynı RGB sayılarını taşıyabilir ve dürüstçe farklı renkler olabilir; çünkü biri sayılara anlam veren bağlamı beyan ederken diğeri bunu şansa bırakır.

İkinci bir tuzak: DeviceCMYK’in otomatik olarak “baskıya hazır” anlamına geldiğini varsaymak. Gelmez. CMYK hâlâ aygıt rengidir; baskıya göre biçimlenmiştir ama bir profil ya da çıktı amacı gerçek baskı koşulunu adlandırana dek kalibre edilmiş değildir.

NextPDF, standartlara uygun renk üretir: aygıt ve ICC tabanlı renk uzaylarını yazar ve PDF/X tarzı ile PDF/A iş akışları için, biçimin tanımladığı şekilde çıktı amaçlarını beyan eder. Bu, işin üreten yarısıdır ve bir belgenin sahip çıkabileceği yarıdır.

NextPDF’in olmadığı şey, bir renk provası sistemidir. Monitörünüzü ölçmez, bir baskıyı ekranda yumuşak-prova yapmaz ya da basılı sonucun, amaçlanan bir renk numunesiyle bir tolerans içinde eşleştiğini onaylamaz. Bunlar, renk yönetimli bir prova zincirine ve onu işletenlere aittir. Motor, dosyanın doğru şeyi söylemesini sağlar; nihai aygıtın buna uyup uymadığı ise akış aşağısında, aygıt, devredeki ICC profilleri ve — PDF/X ile PDF/A için — bir doğrulayıcı tarafından karara bağlanır, üretici tarafından değil.

  • Bir PDF gerçekte nedir — bu renk uzaylarının ve çıktı amaçlarının içinde yaşadığı nesne modeli.
  • Arşivleme ve PDF/A — uzun vadeli korumanın neden aygıttan bağımsız renge ve çıktı amaçlarına dayandığı.
  • Standartlar manzarası — ISO 32000-2, PDF/X (ISO 15930) ve PDF/A’nın (ISO 19005) birbirlerine göre nerede durduğu.
  • PDF 2.0: neler değişti — güncel biçim sürümünün rengi ve uygunluğu nasıl çerçevelediği.
  • Aygıt renk uzayı — bir aygıtın aldığı denetim değerleriyle adlandırılan bir renk (DeviceRGB, DeviceCMYK, DeviceGray); görünüm, yorumlayan aygıta bağlıdır (ISO 32000-2 §8.6.4).
  • Kalibre edilmiş / ICC tabanlı renk — gömülü bir ICC profili aracılığıyla aygıttan bağımsız bir referansa bağlanmış renk; böylece amaçlanan görünüm aygıtlar arasında yeniden üretilebilir (ISO 32000-2 §8.6.5.5).
  • ICC profili — belirli bir aygıtın sayıları ile insan görüşüne yaklaşan, aygıttan bağımsız bir referans arasındaki ölçülmüş eşleme.
  • Oluşturma amacı — bir hedef aygıtın yeniden üretemeyeceği renkleri ele alma politikası: en yakın erişilebilir renge kırpmak ya da renk ilişkilerini korumak için bir aralığı kaydırmak.
  • Çıktı amacı — belgenin, hazırlandığı çıktı koşuluna ilişkin beyanı; tipik olarak gömülü bir hedef ICC profili aracılığıyla (ISO 32000-2 §14.11.5); PDF/X tarafından zorunlu kılınır ve PDF/A tarafından kullanılır.
  • PDF/X — PDF’nin ISO 15930 baskı değişim profili ailesi; bir PDF/X dosyası, hedef baskı koşulunu adlandıran bir çıktı amacı taşımalıdır.