Преобразование PDF в изображение с высоким разрешением

Я пытаюсь использовать программу командной строки convert чтобы взять PDF в изображение (JPEG или PNG). Вот из СИЗО что я пытаюсь преобразовать.

Я хочу, чтобы программа обрезала лишнее белое пространство и вернула достаточно высокое качество изображения, чтобы надписи можно было легко прочитать.

Это мой ток!--12-->лучшая попытка. Как вы можете видеть, обрезка работает нормально, мне просто нужно заточить разрешение немного. Это команда, которую я использую:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg

Я пытался принять следующие сознательные решения:

  • изменить его размер больше (не влияет на разрешение)
  • сделать качество как можно выше
  • использовать -sharpen (Я пробовал диапазон значений)

любые предложения, пожалуйста, по получению разрешения изображения в окончательном PNG / JPEG выше, будут очень признательны!

11 ответов


похоже, что работает следующее:

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

в результате левое изображение. Сравните это с результатом моей первоначальной команды (изображение справа):

действительно см. и оцените различия между ними, щелкните правой кнопкой мыши на каждом и выберите "Открыть изображение в новой вкладке...".)

также имейте в виду следующие факты:

  • хуже, размытое изображение справа имеет размер файла 1.941.702 байт (1.85 Мбайт). Его разрешение составляет 3060x3960 пикселей, используя 16-битное цветовое пространство RGB.
  • лучшее, четкое изображение слева имеет размер файла 337.879 байт (330 кбайт). Его разрешение составляет 758x996 пикселей, используя 8-битное серое цветовое пространство.

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


лично мне это нравится.

convert -density 300 -trim test.pdf -quality 100 test.jpg

это чуть более чем в два раза больше размера файла, но для меня это выглядит лучше.

-density 300 задает dpi, на котором отображается PDF.

-trim удаляет все пиксели ребер, которые имеют тот же цвет, что и угловые пиксели.

-quality 100 устанавливает качество сжатия JPEG на самое высокое качество.

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

если вы действительно хотите, чтобы он взорвался, используйте здесь изменение размера и, возможно, большее значение dpi чего-то вроде targetDPI * scalingFactor это будет отображать PDF в разрешении / размере, который вы намереваетесь.

описания параметров на imagemagick.org are здесь


я нашел его быстрее и стабильнее при пакетной обработке больших PDF-файлов в PNGs и JPGs для использования базового gs (Он же Ghostscript) команда, что convert использует.

вы можете увидеть команду в выводе convert -verbose и есть еще несколько возможных настроек (YMMV), которые трудно / невозможно получить доступ напрямую через convert.

тем не менее, было бы сложнее сделать обрезку и заточку с помощью gs, Так, как я сказал, YMMV!


Я использую pdftoppm в командной строке, чтобы получить исходное изображение, как правило, с разрешением 300dpi, так pdftoppm -r 300, а затем использовать convert для обрезки и преобразования PNG.


обычно я извлекаю встроенное изображение с помощью "pdfimages" в собственном разрешении, а затем использую преобразование ImageMagick в необходимый формат:

$ pdfimages -list fileName.pdf
$ pdfimages fileName.pdf fileName   # save in .ppm format
$ convert fileName-000.ppm fileName-000.png

это создает лучший и самый маленький файл результатов.

Примечание: для изображений с потерями JPG, вы должны были использовать -j:

$ pdfimages -j fileName.pdf fileName   # save in .jpg format

с недавним poppler вы можете использовать-все, что сохранить потери как jpg и без потерь, как png

На мало предоставленной платформе Win вам пришлось загрузить недавний (0.37 2015) 'poppler-util' бинарный из: http://blog.alivate.com.au/poppler-windows/


Это также дает вам хорошие результаты:

exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg");

еще одно предложение заключается в том, что вы можете использовать GIMP.

просто загрузите файл PDF в GIMP - >сохранить как .xcf, а затем вы можете делать все, что хотите с изображением.


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

2JPEG можно конвертировать PDF-файл, который вы прикрепили к хорошему заточить JPG и обрезать пустые поля за один вызов:

2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop

пользователь Linux здесь: я попробовал convert утилита командной строки (для PDF в PNG), и я не был доволен результатами. Я нашел это проще, с лучшим результатом:

  • извлеките страницы pdf с помощью pdftk
    • например: pdftk file.pdf cat 3 output page3.pdf
  • открыть (импортировать) этот pdf с GIMP
    • важно: изменить импорт Resolution С 100 до 300 или 600 pixel/in
  • на GIMP экспорт в PNG (изменить расширение файла на .png)

Edit:

добавлено изображение, как указано в Comments. Преобразование команды используется:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP: импортируется при 300 dpi( px / in); экспортируется как уровень сжатия PNG 3.

Я не использовал GIMP в командной строке (см. Мой комментарий ниже).

pdf2png

enter image description here


Это на самом деле довольно легко сделать с Preview на Mac. Все, что вам нужно сделать, это открыть файл в Preview и сохранить как (или экспортировать) png или jpeg, но убедитесь, что вы используете по крайней мере 300 dpi в нижней части окна, чтобы получить изображение высокого качества.


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

convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png

Это должно правильно преобразовать файл, как вы просили.