Sto usando convert
versione 6.6.2-6 ImageMagick 2011-03-16, e vorrei usarlo per generare un pdf A4 da un'immagine, in cui l'immagine sarà non-scala e centrata.Centrare un'immagine .jpg in PDF usando Imagemagick?
sto correndo il seguente (come una modifica del Overlaying Images with 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
... ma, in fondo, non mostra? Stessa cosa accade per un immagine png ...
Nota che
- Just '
convert -page A4 red.jpg out.pdf
' funziona - ma l'immagine non è centrata; (-gravity center
causa immagine non mostrare) - Se l'immagine è png, '
convert -page A4 -gravity center red.png out.pdf
' effettivamente funziona bene
... però, mi piacerebbe convert
per incorporare i contenuti del flusso JPEG direttamente - quindi, non vorrei prima convertire JPG in PNG.
Così, sarebbe possibile utilizzare convert
per centrare un immagine JPG in una pagina PDF A4 direttamente?
Molte grazie in anticipo per qualsiasi risposta,
Cheers!
EDIT2: @ John Keyes risposta lavora per l'esempio di cui sopra; dove l'immagine è "piccolo" rispetto alla dimensione PDF - se l'immagine è più grande, ad es .:
$ 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
... allora sarà sicuro. Tuttavia, si scopre: "if you change -extent to 50x50, then play with -gravity, you'll see changes" - ad eccezione, la domanda è: che misura si fa a cambiare, quella dell'immagine - o quella del PDF finale?
Beh, si scopre - è l'entità del PDF finale ... Per scoprire che taglia come convert
vede, controllare la pagina: Magick::Geometry - tuttavia, notare che i "Dati PostScript formato della pagina" come "A4+43+43>
"Purtroppo, causare convert
a crash in questo contesto ... Ma almeno i rispettivi numeri per le dimensioni (595x842) possono essere copiati dalla pagina; e, infine, questo funziona:
convert -page A4 -gravity center -resize 595x842 -extent 595x842 red.jpg out.pdf
... e in realtà, la parte -extent
non è realmente necessario - la parte -resize
è quella importante avere la grande mostra immagine ..
Tuttavia, il problema qui è che l'immagine inclusa sembra essere ricampionata - tuttavia, mi piacerebbe solo mostrarla ridimensionata in modo che si adatti alla pagina, ma altrimenti vorrebbe che lo stream JPG originale venga inserito nel file ..Quindi credo che la questione è ancora parzialmente aperta :)
EDIT: Correlati:
- ImageMagick Gravity parameter - Stack Overflow
- ImageMagick and Geometry Issue - resizing with > - Stack Overflow
- command line - Resizing and croping images to an aspect ratio of 6x4 with width of 1024 pixels - Unix and Linux - Stack Exchange
- conversion - using imagemagick or ghostscript (or something) to scale PDF to fit page? - Stack Overflow
Impressionante: molte grazie, @John Keyes! Avrei giurato di aver già provato qualcosa con '-format pdf' e ho fallito; ma sto provando la tua prima linea di comando e funziona benissimo! :) Grazie ancora - grazie! – sdaau
Prego. Sono andato più volte nella tana del coniglio delle opzioni ImageMagick. –
Questo non funziona con le immagini di grandi dimensioni (Versione 6.9.2), nel mio caso la conversione di 5 MByte JPEG. Produce solo una pagina vuota. Senza l'opzione del "centro di gravità" funziona, ma non è centrata, ovviamente. Sembra essere un problema aperto: https://www.imagemagick.org/discourse-server/viewtopic.php?t=22759 – mischka