Центрирование изображения .jpg в PDF с помощью Imagemagick?

Я использую convert версию ImageMagick 6.6.2-6 2011-03-16, и я хотел бы использовать его для создания A4 pdf из изображения, где изображение не будет масштабировано и центрировано.

Я использую следующее (как модификацию наложения изображений с помощью ImageMagick ):

# generate a 100x100 JPG with just red color
convert -size 100x100 xc:red red.jpg

# generate PDF from JPG
convert -page A4 xc:white red.jpg -gravity center -composite -format pdf out.pdf

... но , в основном ничего не отображается? То же самое происходит с изображением png ...

Обратите внимание, что

  • Just ' convert -page A4 red.jpg out.pdf ' работает - но изображение не центрировано ; ( -центр гравитации приводит к тому, что изображение не отображается )
  • Если изображение имеет формат png, ' convert -page A4 -gravity center red.png out.pdf ' действительно работает нормально

... однако я бы хотел convert , чтобы напрямую встроить содержимое потока JPEG - следовательно, я не хотел бы сначала преобразовывать JPG в PNG.

Итак, можно ли использовать convert для центрирования изображения JPG непосредственно на странице PDF формата A4?

Большое спасибо заранее для любых ответов,
Ура!

РЕДАКТИРОВАТЬ2: ответ @John Keyes работает для приведенного выше примера; где изображение «меньше», чем размер PDF - однако, если изображение больше, например:

$ convert -size 1228x1706 -background \#f44 -rotate 45 gradient:\#f00-\#fff red.jpg
$ identify red.jpg 
red.jpg JPEG 2075x2075 2075x2075+0+0 8-bit DirectClass 120KB 0.000u 0:00.000

... тогда оно не сработает.Однако оказывается: « если вы измените -extent на 50x50, а затем поиграете с -gravity, вы увидите изменения » - за исключением того, что вопрос: какой размер вы изменить, изображение или окончательный PDF-файл?

Что ж, оказывается - это размер окончательного PDF-файла ... Чтобы узнать этот размер, как его видит convert , проверьте страницу: Magick :: Geometry - однако обратите внимание, что «спецификации размера страницы Postscript», такие как « A4 + 43 + 43> », к сожалению, вызывают сбой convert в этом контексте ... Но, по крайней мере, соответствующие числа для размера (595х842) можно копировать со страницы; и, наконец, это работает:

convert -page A4 -gravity center -resize 595x842 -extent 595x842 red.jpg out.pdf

... и на самом деле часть -extent на самом деле не нужна - часть -resize важна для отображения большого изображения. .

Однако проблема здесь в том, что включенное изображение кажется повторно дискретизированным - однако я просто хотел бы показать его масштабированным, чтобы оно соответствовало странице, но в противном случае хотелось бы, чтобы исходный поток JPG был вставлен в файл. ..Так что, я думаю, вопрос все еще частично открыт :)

РЕДАКТИРОВАТЬ: Связано:

7
задан Community 23 May 2017 в 12:17
поделиться