ImageMagick: преобразование цветового профиля PDF создает гигантский PDF?
Я использую следующую команду:
convert sourcefile.pdf -profile "cmyk.icc" -profile "srgb.icc" +profile "*" output.pdf
В тестовом 3-мегабайтном файле он создает 20-мегабайтный PDF-файл ужасного качества.
Если я добавлю параметр -density 600, файл взорвется до 600 МБ. Есть ли способ преобразовать цветовое пространство при сохранении всего остального? Это временный PDF для дальнейшей обработки, поэтому мне не нужно, чтобы он был точно такого же размера, но я не могу справиться с гигантскими размерами PDF файлов.
1 ответ
Ваша проблема не в использовании цветовых профилей с convert
и ImageMagick.
Я гарантирую, что у вас будет та же проблема с этими командами:
convert sourcefile.pdf output.pdf
convert -density 600 sourcefile.pdf output.pdf
Ваша настоящая проблема в том, чтобы использовать ImageMagick для задачи, в которой она не очень хороша. Потому что ImageMagick не может справиться с PDF -файлами. Это может иметь дело только с растровыми изображениями. Это то, где оно превосходно, и где оно действительно очень хорошо.
Поскольку PDF -файлы не являются растровыми изображениями (хотя они могут содержать их), ImageMagick использует делегата для преобразования страниц PDF в отдельные полностраничные изображения. Этот делегат - Ghostscript.
Только после получения результата делегата (растрового изображения) ImageMagick начинает работать в изменениях вашего профиля. Как только это будет сделано, он преобразует изображение обратно в PDF - но теперь PDF потерял все свои прежние векторные объекты, и с каждой страницы осталась только пиксельная версия.
Точно так же, как вы не можете поместить мясо обратно в один кусок, после того как вы измельчили его через мясорубку - вы не можете вернуть исходные объекты PDF (векторные рисунки, шрифты и т. Д.) После растеризации его страницы, как ImageMagick делает....
Решение вашей проблемы (работа с цветовыми профилями, используемыми в PDF -файлах): используйте правильный инструмент для работы. Научитесь использовать Ghostscript напрямую! (Поскольку Ghostscript может встраивать цветовые профили ICC в PDF -файлы, не меняя сначала страницы на растровые изображения. Для этого вам не нужен ImageMagick!)