Управление цветовым пространством в Postscript, Ghostscript, GSView

Я пытаюсь написать постскриптум, чтобы создать иллюстрацию в файлах, которые я могу отправить на принтер, чтобы распечатать некоторые знаки.

Принтер предъявляет различные требования к PDF-файлам, одно из которых заключается в том, что они должны использовать CMYK.

Во всем моем предыдущем использовании Postscript я использовал setrgbcolor и никогда не имел дело с управлением цветовым пространством, профилями ICC и т. д.

Один из цветов, которые я использую, называется RAL 1507 RAL 5017 (Traffic Blue) со значениями RGB и CMYK, которые я получил с помощью поисковой системы по названию цвета. Я проверил с помощью онлайн-конвертера RGB в CMYK (без указанного профиля цветового пространства).

Я бы попробовал setcmykcolor и создал следующее

%!PS-Adobe3.0
%
% Test use of CMYK in Postscript in preparation for creating a PDF/A-1a file
% for use by a commercial printer.
%
%%Pages: 1 

%%Page: One 1

/Hevetica-Bold 20 selectfont

0   90 255 div  140 255 div  setrgbcolor
100 100 250 100 rectfill
120 130 moveto 1 setgray (RGB: 0 90 140) show

100 255 div   60 255 div   0   10 255 div  setcmykcolor
100 200 250 100 rectfill
120 230 moveto 1 setgray (CMYK: 100 60 0 10) show

100 255 div   36 255 div   0   45 255 div  setcmykcolor
100 300 250 100 rectfill
120 330 moveto 1 setgray (CMYK: 100 36 0 45) show

0 0 1 setrgbcolor
100 400 250 100 rectfill
120 430 moveto 1 setgray (RGB: 0 0 255) show

showpage

%%EOF

(Простите DSC - этого должно быть достаточно, чтобы успокоить GSView)

GSView 5.0 в MS-Windows 10 с Ghostscript 9.05 отображает это так

отображенный постскриптум

Я ожидал, что по крайней мере один из цветов CMYK будет намного ближе к нижнему цвету RGB.

Рассматриваемый цвет предназначен для печати дорожных знаков, поэтому я был бы удивлен, если бы он не соответствовал цветовой гамме, используемой коммерческими принтерами.

Что мне нужно сделать, чтобы быть уверенным, что принтер напечатает мое значение CMYK с результатом, близким к тому, что я ожидаю от рендеринга GSView значения RGB.


person RedGrittyBrick    schedule 16.07.2018    source источник


Ответы (1)


Я не знаю, откуда вы взяли значения CMYK, но они (IMO) не являются хорошим представлением цвета RGB. Вместо этого попробуйте 0,74 0,44 0 0,27 setcmykcolor.

Используемые вами числа были бы разумными, если бы вы рассматривали их как проценты, а не как значения в диапазоне 0->255. 100 % голубого, 36 % пурпурного, 0 % желтого и 45 % черного дают вполне приличное совпадение. Интересно, это твоя ошибка?

Это было бы:

1 0.36 0 0.45 setcmykcolor

Кстати, я думаю, вы имеете в виду RAL 5017, а не 1507, который красный.

Кроме того, имейте в виду, что вы конвертируете цвет RGB в CMYK, а затем отображаете это значение CMYK на мониторе RGB, что включает в себя преобразование его обратно в RGB, поэтому некоторая потеря точности быть ожидаемым.

Крайне упрощенный расчет, приведенный в Красной книге (Справочное руководство по языку PostScript), состоит в том, что голубой = 1 — красный, пурпурный = 1 — зеленый, желтый = 1 — синий. Однако равные значения CMYK обычно не создают черный цвет, поэтому мы также применяем удаление нижнего цвета.

Возьмите наименьшее значение C, M, Y, сделайте это значение K (черным). Затем вычтите k из каждого из C, M, Y. Окончательный результат:

c = 1 - красный m = 1 - зеленый y = 1 - синий k = min (c, m, y)

голубой = c - k пурпурный = m - k желтый = y - k черный = k

Для ваших значений (сопоставленных со значениями от 0 до 1, при условии диапазона 0–255); красный = 0 зеленый = 0,353 синий = 0,549

c = 1 - 0 = 1 m = 1 - 0.353 = 0.647 y = 1 - 0.549 = 0.451 k = 0.451

голубой = 1 - 0,451 = 0,549 пурпурный = 0,647 - 0,451 = 0,196 желтый = 0,451 - 0,451 = 0 черный = 0,451

so

0.549 0.196 0 0.451 setcmykcolor

Это дешевое и веселое вычисление, предназначенное для выполнения интерпретатором PostScript на принтере, поэтому оно выбрано как быстрое, а не точное. Но я думаю, вы увидите, что это ближе, чем значения, которые вы использовали.

Для правильного управления цветовым пространством используемые вами цвета RGB будут значениями в определенном пространстве RGB, например, в цветовом пространстве вашего монитора. Затем вы должны использовать профиль ICC, связанный с этим устройством, для преобразования значений RGB в значения в пространстве CIE XYZ (независимом от устройства пространстве). Затем вы должны выбрать конкретное целевое пространство CMYK (например, принтер, который вы хотите использовать) и использовать профиль ICC, связанный с целевым устройством, чтобы пойти другим путем, превратив значения XYZ в значения CMYK.

В рабочем процессе с надлежащим управлением цветом, когда все устройства характеризуются профилями ICC, в результате цвет на всех устройствах будет максимально приближенным к одному и тому же.

Конечно, это зависит от того, что у вас есть все характеристики, а у вас явно нет.

Обратите внимание, что плашечные цвета (цвета-разделители в PostScript и PDF) несколько «различны». Они предназначены для печати с использованием специальных чернил, поэтому нет необходимости характеризовать значения, 50% Pantone 1495 — абсолютно точное значение.

Однако, если ваш принтер не оборудован для печати этого цвета, потому что, например, вы выполняете быструю проверку на своем локальном принтере CMYK, эти цвета обычно определяются как имеющие «альтернативное» представление. В идеале это будут значения CMYK, которые будут печатать что-то, что не совсем отличается от желаемого цвета. Некоторые производители красок указывают альтернативное представление, которое не является особенно хорошим представлением фактического цвета, возможно, потому, что у них есть ряд красок, которые соответствуют одному и тому же цвету в CMYK, поэтому они используют значения «выкл», чтобы иметь возможность увидеть разницу. . Известно, что подозрительные пользователи комментируют, что это сделано для того, чтобы убедиться, что вы не сможете сделать приличную печать без использования чернил производителя .....

person KenS    schedule 17.07.2018
comment
Некоторые из значений, которые я пробовал, взяты из e-paint — Спасибо, что нашли мою ошибку в интерпретации этих чисел. Я начал читать Техническую заметку Adobe № 5044, но я думаю, что вы дали мне более чем достаточно, чтобы получить результаты, которые мне нужны в данный момент. Оценил. - person RedGrittyBrick; 18.07.2018