Преобразование 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 в командной строке (см. Мой комментарий ниже).
Это на самом деле довольно легко сделать с Preview на Mac. Все, что вам нужно сделать, это открыть файл в Preview и сохранить как (или экспортировать) png или jpeg, но убедитесь, что вы используете по крайней мере 300 dpi в нижней части окна, чтобы получить изображение высокого качества.
используйте эту командную строку:
convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png
Это должно правильно преобразовать файл, как вы просили.