Πως φτιάχνω κολάζ εικόνων από τη γραμμή εντολών με το montage

dimitris | Παρ, 11/29/2013 - 21:29 | 5'

Συνήθως η επεξεργασία εικόνων γίνεται με μια εφαρμογή σαν το Gimp, αλλά η γραμμή εντολών του Linux διαθέτει εργαλεία για να κάνεις πράγματα με μια απλή εντολή. Για παράδειγμα, το να φτιάξεις κολάζ ή μοντάζ από πολλές εικόνες.

Εστω για παράδειγμα ότι έχουμε τις παρακάτω εικόνες:

1.png  2.png  3.png  4.png  5.png  6.png

Πως μπορούμε να τις βάλουμε σε ένα κάδρο 2 γραμμών με 3 στήλες;

Με την εντολή montage του Imagemagick:

montage [1-6].png   collage0.jpg

Εδώ χρησιμοποιεί τον τελεστή [] για να πω στο πρόγραμμα ότι θέλω να πάρει όλες τις εικόνες 1.png έως 6.png. Το αποτέλεσμα είναι αυτό:

collage0.jpg

Καλό;

Μπορει να γίνει όμως και καλύτερο αν αφαιρέσουμε τα περιθώρια γύρω από τις αρχικές εικόνες. Το περιθώριο αυτό υπάρχει επειδή το montage επιχειρεί να βάλει κάθε εικόνα σε ένα κουτί 120x120 px.  Με την παράμετρο -geometry μπορούμε να πούμε στο montage να χρησιμοποιήσει το μεγαλύτερο image size συν ένα μικρό περιθώριο (π.χ. 2px):

montage [1-6].png  -geometry +2+2 collage1.jpg

Το αποτέλεσμα θα είναι αυτό:

collage1.jpg

Τώρα με τις παραμέτρους -border και -bordercolor ας πούμε στο montage να βάλει και κόκκινο περιθώριο πλάτους 5px γύρω από τις εικόνες

montage [1-6].png  -border 5 -bordercolor red -geometry +2+2 collage2.jpg

Το αποτέλεσμα θα είναι αυτό:

collage2.jpg

Το ωραίο με το montage (και με το Imagemagick γενικότερα) είναι ότι κάνει ορισμένα πράγματα μόνο του. Π.χ. αποφασίζει πως θα διαρρυθμίσει τις εικόνες. Π.χ. αν του δώσετε 3 εικόνες θα φτιάξει ένα κολάζ 3 εικόνων σε 1 γραμμή (3x1). 

montage [1-3].png  -border 5 -bordercolor red -geometry +2+2 collage3.jpg

collage3.jpg

Ενώ αν του δώσετε 4 εικόνες θα φτιάξει ένα 2x2:

montage [1-4].png  -border 5 -bordercolor red -geometry +2+2 collage4.jpg

collage4.jpg

Εναλλακτικά αν δεν σας αρέσει το autotiling, χρησιμοποιήστε την παράμετρο -tile:

montage [1-6].png  -tile 1x6 -border 5 -bordercolor red -geometry +2+2 collage5.jpg

Το αποτέλεσμα είναι αυτό:

collage5.jpg

Θέλετε και "κάδρο" γύρω από το κάθε image και σκιά; Εχουμε κι από αυτό με τις -frame και -shadow:

montage [1-6].png   -border 5 -frame 5 -shadow -bordercolor red -geometry +2+2 collage6.png

Και το αποτέλεσμα είναι:

collage6.jpg

Υπάρχουν και πιο ενδιαφέροντα πράγματα που μπορείτε να κάνετε με το montage. Για παράδειγμα να βάλετε ετικέτες (label) σε κάθε image. Αυτό γίνεται με την παράμετρο -label <ετικετα> <filename>. Μόνο που η εντολή θα αλλάξει αρκετά:

montage  -label one 1.png -label two 2.png -label three 3.png -label four 4.png -label five 5.png -label six 6.png  -border 5 -frame 5 -shadow -bordercolor red -geometry +2+2 collage7.png

To αποτέλεσμα είναι αυτό:

collage7.png

Ή αν θέλετε να βάλετε το όνομα του κάθε αρχείου ως ετικέτα:

montage  -label '%f' [1-6].png  -border 5 -frame 5 -shadow -bordercolor red -geometry +2+2 collage8.png

collage8.png

Φόρουμ
Δώσε αστέρια!

MO: 5 (ψήφοι: 1)