Ghostscript - EPS (со встроенным TIFF с прозрачным фоном) для преобразования PNG - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь преобразовать файл EPS со встроенным TIFF с прозрачным фоном в PNG, используя GhostScript.У меня проблема в том, что фон изображения TIFF становится белым в PNG.Выглядит это следующим образом:

IncorrectPNG

Когда я экспортирую из Adobe Illustrator, все получается правильно:

CorrectPNG

Я читал, что в EPS нет прозрачности, только отмеченные и немаркированные области.Мне было интересно, если бы был звонок, который я пропустил, который создал бы PNG через Ghostscript, подобный тому из Illustrator?Или, если есть какая-либо другая альтернатива, которая не просто заменяет белый на прозрачность через ImageMagick?

Я использую Windows и у меня установлен Ghostscript 9.25.Вот команда (одна из многих), которую я пробовал:

-q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -sDEVICE=pngalpha -r300 -dEPSCrop NamePlatePNG.png NamePlate.eps


Я могу при необходимости передать вам файл EPS.Любая помощь будет оценена, спасибо!

ОБНОВЛЕНИЕ: Вот файл EPS (Надеюсь, эта ссылка работает):

https://drive.google.com/open?id=1m4HHGLoPe0jdWkx1Oghe7ttiXPldZnJs

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

1 Ответ

0 голосов
/ 04 декабря 2018

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

Вы правы в том, что PostScript (и, следовательно, EPS) не поддерживает прозрачность, но он поддерживает несколько функций, которые имеют несколько схожие эффекты.

Цветовое пространство не имеет значения, и фактически единственный вид «прозрачности», поддерживаемый в PostScript, работает, когда цветовым пространством является CMYK, но не когда его RGB (и, конечно, не sRGB, который даже не является цветовым пространством PostScript,Вы должны изготовить его из CIEBasedABC)

Насколько я вижу, командная строка, которую вы используете, является правильной, но, как я говорю, я ничего не могу сказать, не видя реальной программы EPS.

[РЕДАКТИРОВАТЬ] Итак, рендеринг Ghostscript правильный, это то, что находится в вашем файле EPS, там нет никакой прозрачности.Так как же Illustrator может сделать прозрачный PNG?Ответ таков: Illustrator не использует PostScript-часть EPS-файла.

Примерно на 1/3 пути через EPS-файл вы увидите строку, которая гласит:

% AI9_PrivateDataBegin

Ниже следует формат файла Adobe Illustrator.Когда AI читает файл, он находит эту строку, отбрасывает часть файла в формате PostScript и считывает AI-представление содержимого из части файла, начинающейся с этого комментария.

Теперь сохраненный где-то там будетбыть информацией, что части контента являются прозрачными.Хотя PostScript не может это представить, внутренний формат Illustrator может.Поэтому, когда вы пишете PNG-файл из Illustrator, он знает, что его часть прозрачна, и записывает его так.

Ghostscript, однако, ограничен частью файла PostScript, он не может прочитать собственный формат Illustratorи, следовательно, отображает изображение на белом фоне.

«Возможно» можно сохранить другой тип EPS из Illustrator (возможно, уровень 3 вместо уровня 2, я заметил, что это язык уровня 2 EPSфайл), который дублирует эффект, но из того, что у вас есть, стандартный интерпретатор PostScript не может сделать ничего, что даст вам желаемый результат.

...