Ghostscript - EPS (со встроенным TIFF с прозрачным фоном) для преобразования PNG
Я пытаюсь преобразовать файл EPS со встроенным TIFF с прозрачным фоном в PNG, используя GhostScript. У меня проблема в том, что фон изображения TIFF становится белым в PNG. Это выглядит следующим образом:
Когда я экспортирую из Adobe Illustrator, все получается правильно:
Я читал, что в 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 ответ
Ваш файл не выглядит прозрачным, он выглядит как замаскированный, возможно, с трафаретной маской, возможно, с хроматическим ключом. Не видя файл, я не могу сказать наверняка.
Вы правы в том, что 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, я заметил, что это файл EPS языкового уровня 2), который дублирует эффект, но из того, что у вас есть, нет " t все, что может сделать стандартный интерпретатор PostScript, который даст вам желаемый результат.