2013-07-09 3 views
7

Я использую GPL Ghostscript 9.07 (2013-02-14) для OS X (10.8.4) для преобразования многих PDF-файлов в PNG.Заставляет Ghostscript использовать сглаживание при преобразовании PDF в PNG?

Он отлично работает, за исключением одного из PDF-файлов, который превращается в PNG с зубчатыми краями. Другими словами, Ghostscript по какой-то причине отключает сглаживание для этого конкретного PDF-файла.

The PDF in question.

Выход:

enter image description here

В других случаях он работает отлично (образец: pdf ->png).

Я использую эту команду:

gs -dNOPAUSE -dBATCH -dPDFFitPage -sDEVICE=pngalpha -g200x150 -sOutputFile=01.png 01.pdf 

Можно ли заставить Ghostscript использовать сглаживание для этого PDF?

Любые советы приветствуются.

+0

Так что я решил свою проблему путем преобразования PDF-файлов в SVG и используя RSVG (rsvg конвертирование) для SVG для преобразования PNG. – Dae

ответ

1

Вы можете попробовать -dGraphicsAlphaBits = со значениями 1,2 или 4, которые могут или не могут иметь значение. Для меня это сделало некоторое улучшение, но его небольшая графика с низким разрешением с неудобной кривой, поэтому не так много, как можно было бы ожидать.

Или вы можете использовать одно из устройств сглаживания (например, tiffscaled), которые являются более гибкими. Нет никакого сглаженного устройства для вывода PNG, но было бы тривиально преобразовать TIFF в PNG.

Кстати, ваш файл PDF специально отключает сглаживание на компонентах:

8 0 obj 
<</AntiAlias false/ColorSpace/DeviceCMYK/Coords[0.0 0.0 1.0 0.0]/Domain[0.0 1.0]/Extend[true true]/Function 10 0 R/ShadingType 2>> 

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

+0

1) Никаких изменений, когда я устанавливал Antialias в true (должен был распаковать и сжать файл, используя pdftk, чтобы иметь возможность редактировать его). 2) Никаких изменений для зубчатых краев с -dGraphicsAlphaBits = 4 3) Tiffscaled - ДА, созданное изображение кажется сглаженным, но оттенки серого и фон заполнены белым, а не прозрачным (я думаю, это ограничение TIFF). – Dae

+0

Также PostScript и PDF. Фон всегда считается непрозрачным белым, если вы специально не нарисовали в нем что-то еще. Его никогда не «прозрачно» в этих образных моделях.Если вы прочитаете нить об ошибке, которую вы открыли в Bugzilla, вы увидите, почему другие параметры не работают, вам нужно использовать одно из «масштабированных» устройств. – KenS

2

Вы можете попробовать -dDOINTERPOLATE, которая использует функцию Mitchell фильтра для масштабирования взносов для каждого выходного пикселя

+0

К сожалению, я не вижу никаких изменений, но спасибо за предложение. – Dae

+1

-dDOINTERPOLATE влияет только на изображения, это не повлияет на словари затенения, что и использует этот файл. – KenS

6

Это работает для меня:

gs -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r150 -sOutputFile=foo-%d.jpg foo.pdf 

Источник: ImageMagick convert pdf to jpeg has poor text quality after upgrading ImageMagick version to 6.7.8

выше будет работать для JPG; для PNG, замените опцию -sDEVICE с вашим выбором, например: -sDEVICE=png16m

Источник: http://ghostscript.com/doc/current/Devices.htm

+0

Вопрос был о преобразовании из PDF в PNG, а не в формате JPEG. – Dae

+0

yep, добавлено PNG, спасибо. –

+0

Стоит отметить, что здесь выполняются функции '-dTextAlphaBits = 4' и' -dGraphicsAlphaBits = 4'. Другие варианты могут быть или не быть необходимыми в зависимости от вашей ситуации. –

Смежные вопросы