Я пытаюсь преобразовать PDF в TIFF и сохранить как цветовое пространство CMYK, так и прозрачные области в PDF.Есть много сообщений, в которых говорится «просто используйте PNG», но для моего приложения цветовое пространство CMYK является обязательным, и PNG не поддерживает CMYK.Я начал работать над этим с использованием Imagemagick (IM) и имел ограниченный успех, но пока добился лучших результатов, используя Ghostscript напрямую (это то, что IM использует в любом случае под капотом).Проблема, которая постоянно возникает, заключается в том, что прозрачные области из PDF заполнены белым.
Контекст: Ubuntu 16.04.3 LTS (AWS), Ghostscript 9.23, ImageMagick 7.0.7-36
Я создал тестовый PDF с прозрачным фоном и перекрывающимися блоками сплошных и полупрозрачных элементов.прозрачные цвета: trans-test.pdf
Я проверил, что PDF имеет правильные прозрачные области.Если я использую PNG (и, следовательно, цветовое пространство RGB), я получаю результирующее изображение, которое имеет совпадающие прозрачные области как PDF, но, увы, неправильное цветовое пространство: output.png
(помните: веб-браузеры будут показывать его на белом фоне, но он действительно прозрачный)
Для преобразований я пробовал варианты следующих команд (упрощенных для публикации):
Imagemagick: convert -depth 8 -colorspace CMYK trans-test.pdf output.tif
Ghostscript: gs -sDEVICE=tiff32nc -sOutputFile=output_gs.tif -r144 trans-test.pdf
В IM делегат для обработки файлов CMYK использует устройство pamcmyk32.Некоторые предлагают изменить это на pngalpha, но это вызывает нежелательное изменение в цветовом пространстве RGB.Некоторые предлагают преобразовать сначала в PNG, а затем обратно в CMYK, но это приводит к потере цветных данных.
При непосредственном использовании Ghostscript ни одна из опций устройства для TIFF не имеет опций для прозрачности.Поработав некоторое время, я нашел старый пост-ответ от разработчика в Artifex (KenS), в котором говорилось, что «Что касается TIFF, в GS нет поддержки для того, чтобы сделать непомеченные области прозрачными» .: Преобразование ... делаетне поддерживать прозрачность
Это удручало, но это было с 2011 года, поэтому я надеюсь, что к этому вопросу уже есть какое-то решение.Я ищу некоторые изменения в конфигурации Ghostscript, которые позволят мне установить прозрачность всех немаркированных областей или начать со страницы, стертой как прозрачную, а не белую.
Формат файла TIFF поддерживает как цветовое пространство CMYK, так и прозрачность, поэтому должен быть способ получить оба в одном файле.Любое понимание того, как получить оба в TIFF будет приветствоваться на этом этапе.Спасибо за чтение.