2016-03-02 2 views
1

Je veux donc créer une grande image de taille 3600x2280 composée de trois images plus petites. Le premier devrait être redimensionné à 1680x1050 et placé dans le coin supérieur gauche. Le 2ème doit être réattribué à 1920x1200 et placé immédiatement à droite de celui-ci (+1680 plus). La 3ème image doit être redimensionnée à 1920x1080 et placée en bas à droite (+ 1680 + 1200). Le coin inférieur gauche sera simplement vide/transparent.Combiner et redimensionner plusieurs images dans un carré en utilisant ImageMagick

J'ai essayé différentes commandes que j'ai cherché en ligne et pense que je suis en train peu près avec quelque chose comme ce qui suit pour seulement deux des trois images:

convert -define png:size=3600x2280 \(Photos/DSC05525-original.jpg -resize 1680x1050 \) -geometry +0+0 -composite \(Photos/Sydney-Loftus-Train-Station-original.jpg -resize 1920x1200 \) -geometry +1680+0 -extent 3600x2280 test.png 

... mais que les lieux la 2ème image sur la première (je pense car elle ne sait pas s'étendre jusqu'à la toute fin?). J'ai essayé différentes combinaisons de -composite, -gravity et + repage, mais je n'arrive pas à trouver une solution.

Répondre

3

Il existe de nombreuses façons de procéder. Choisissez celui qui correspond le mieux au fonctionnement de votre esprit! J'ai utilisé des images de test comme ceci:.

1.jpg => red 
2.jpg => green (lime actually) 
3.jpg => blue 

Méthode 1

convert -background none        \ 
    1.jpg -resize 1680x1050!       \ 
    \(2.jpg -resize 1920x1200! \) +append    \ 
    \(3.jpg -resize 1920x1080! -gravity east \) -append \ 
    result.png 

enter image description here

Cela dit ... « Laissez toutes les zones non peintes transparent Redimensionner l'image 1. Redimensionner image 2 et placez-le à droite de l'image 1 (+append) Redimensionnez l'image 3 et alignez-la à l'est.Ajoutez les images 1 et 2 (-append). "

Méthode 2

convert -background none     \ 
    \(2.jpg -resize 1920x1200! \)   \ 
    \(3.jpg -resize 1920x1080! \) -append \ 
    \(1.jpg -resize 1680x1050! \) +swap +append result.png 

Cela dit ... « Charger et redimensionner l'image 2. Charger et redimensionner l'image 3. Placez l'image 3 sous l'image 2 (-append). Charger et redimensionner l'image 1 Placez l'image 1 avant (+swap) image 2 dans la liste des images, puis ajoutez la deuxième image dans la liste à la droite de la première (+append). "

Méthode 3

convert -background none         \ 
    1.jpg -resize 1680x1050! -extent 3600x2280    \ 
\(2.jpg -resize 1920x1200! -geometry +1680 \) -composite \ 
\(3.jpg -resize 1920x1080! -geometry +1680+1200 \) -composite result.png 

Cela dit ... « Laisser des zones non peintes transparente. Charge d'image 1 redimensionner étendons la toile à la pleine taille de sortie pour recevoir les images suivantes. Charger l'image 2, redimensionner, positionner et splatter sur la toile Charger l'image 3, redimensionner et splat sur toile. "

Méthode 4

Juste pour le plaisir, voici une façon totalement différente de penser:

{ convert 1.jpg -resize 1680x1050! miff:- ; \ 
    convert 2.jpg -resize 1920x1200! miff:- ; \ 
    convert -size 1680x1 xc:none miff:- ;  \ 
    convert 3.jpg -resize 1920x1080! miff:- ; } | 
    montage -background none -geometry +0+0 -tile 2x2 miff:- result.png 

Cela dit ... « Démarrer une instruction composée qui charge et redimensionner 4 images et envoyer chacune d'entre elles en format MIFF (Magick Image File Format) à une commande montage qui les regroupera toutes dans la grille 2x2 (-tile 2x2) sans espace entre elles (dix)."