ImageIndex: Ανεβάστε στο διαδίκτυο τις φωτογραφίες σας εύκολα!

slackware | Πέμ, 07/05/2012 - 23:57 | 14'

Το καλοκαίρι έχει φτάσει, διακοπές, θάλασσα, μπάνια και φυσικά πολλές πολλές φωτογραφίες που μπορεί να θέλουμε να τις δημοσιεύσουμε σε ένα online άλμπουμ. Όμως, τα περισσότερα προγράμματα δημιουργίας online γκαλερί εικόνων που κυκλοφορούν απαιτούν μια βάση δεδομένων, εγκατάσταση, να έχουμε τοπικό web server, γνώσεις από PHP, και πολλά άλλα τα οποία είναι κουραστικά καλοκαιριάτικα ακόμα και για αυτούς του ξέρουν.

Του Γιώργου Καπελλάκη*

Τι κάνουμε λοιπόν αν θέλουμε να φτιάξουμε ένα web album γρήγορα, και χωρίς πολύ κόπο; Δηλαδή να φτιάξουμε ένα απλό album ώστε να δουν όλοι οι φίλοι που πήγαμε το καλοκαίρι χωρίς να χρειαστεί να αφιερώσουμε πολύ χρόνο.

Η λύση σε αυτό το πρόβλημα μας δίνει το ImageIndex το οποίο είναι γραμμένο σε Perl και φτιάχνει web album γρήγορα, εύκολα, καιτο καλύτερο οι σελίδες που φτιάχνει είναι σε HTML κώδικα. Τι σημαίνει αυτό; Ότι μπορείτε να κάνετε εύκολα αλλαγές χρησιμοποιώντας έναν οποιοδήποτε text/html editor όπως το bluefish, kedit, vi κλπ. Οι μόνες απαιτήσεις που έχει είναι να έχουμε εγκατεστημένο το ImageMagick και το ImageMagick perl module τα οποία βρίσκονται στο repository κάθε διανομής. Για την Fedora θα τα βρείτε στα extras. Το ίδιο το ImageIndex μπορείτε να το κατεβάσετε από την σελίδα  http://www.edwinh.org/imageindex (μέχρι στιγμής η

νεότερη εκδοσή είναι η 1.1) και ένα πολύ καλό εγχειρίδιο θα βρείτε εδώ  http://goo.gl/jw4s9

Imageindex

Βρίσκουμε και κατεβάζουμε το imageindex-1.1.tar.gz και το αποσυμπιέζουμε. Δεν χρειάζεται να το κάνουμε compile, απλά να τρέξουμε το imageindex. Ας δούμε τι επιλογές μας δίνει το προγραμματάκι αυτό:

imageindex [options] <directory>

Options:
-title <string> τίτλος για την σελίδα
-destdir <dir> σε ποιο φάκελο θα φτιάξει τις html σελίδες
-[no]recurse ενεργοποίησε/απενεργοποίησε να ψάξει τους υπο-φακελους -[no]medium ενεργοποίησε/απενεργοποίησε στο μεσαίο μέγεθος σε images/links
-[no]slide ενεργοποίησε/απενεργοποίησε τα αρχεία να εμφανίζονται σε slideshow
-[no]detail ενεργοποίησε/απενεργοποίησε τις λεπτομέρειες στα αρχεία
-[no]dirs enable/disable directory entries
-[no]montage ενεργοποίησε/απενεργοποίησε το montage των φακέλων
-forceregen ξανάφτιαξε τα thumbnails
-columns <num> πόσες στήλες θα έχει το html table
-exclude <file> Εξαίρεσε αρχείο ή αρχεία
-reverse ταξινόμησε τα με το νεότερο πρώτο
-x <num> όρισε το μέγεθος της οριζόντιας διάστασης x στο thumbnail
-y <num> όρισε το μέγεθος της οριζόντιας διάστασης y του thumbnail
-help εμφάνισε αυτό το κείμενο
-version εμφάνισε την τρέχουσα εκδοσή
-d κανε overwrite τις μεταβλητές

 

Επομένως, αν θέλουμε να φτιάξουμε ένα web album το οποίο να ψάξει όλους τους υποφακέλους, να φτιάξει slideshow, να αντλήσει λεπτομέρειες από κάθε εικόνα, και να τις εμφανίζει όλες σε μεσαίο μέγεθος, θα πρέπει να δώσουμε την παρακάτω εντολή:

imageindex -recurse -medium -detail -slide
 

Προσοχή: αν θέλουμε να φτιάξουμε και τους υποφακέλους, θα πρέπει το imageindex να υπάρχει σε κάθε φάκελο.

Το ImageIndex υποστηρίζει κάθε τύπο φωτογραφίας και βίντεο, και σε καμιά περίπτωση δεν συμπεριλαμβάνει οποιαδήποτε άλλα αρχεία.

Ας δούμε ένα παράδειγμα. Στο φάκελο "images έχουμε τους υποφακέλους
20090907cuba/ και 20090907jamaica/ και θέλουμε να φτιάξουμε ένα album με το imageindex. Αν έχουμε βάλει το εκτελέσιμο στο φάκελο "images", άλλα όχι στους άλλους 2 φακέλους τότε το αποτέλεσμα είναι το παρακάτω:

# ./imageindex -title Cuba_Jamaica
Image::Info not found, not extracting EXIF data
Extracting image info.
Skipping ./imageindex
Processing directory ./20090907jamaica
Processing directory ./20090907cuba
Nothing to do!
oups@dexter:/home/photos/gallery_back/images
 

Οπότε για να γίνει σωστά η δουλειά, αντιγράφουμε το imageindex μόνο στο φάκελο που έχει φωτογραφίες από Κούβα και προσθέτουμε το --recurse για να ψάξει και τους υποφακέλους. Τώρα θα έχουμε το παρακάτω αποτέλεσμα:

# ./imageindex -recurse -title Cuba_Jamaica
Image::Info not found, not extracting EXIF data
Extracting image info.
Skipping ./imageindex
Processing directory ./20090907jamaica
sh: ./imageindex: not found
Processing directory ./20090907cuba
Image::Info not found, not extracting EXIF data
Extracting image info..................
Skipping ./imageindex..............
Skipping ./.directory..
Skipping ./index.php...........
Creating ./medium/dsc01388.jpg
Creating ./thumbnail/dsc01388.jpg
......
........
......
 

Όπως διαπιστώνουμε, το imageindex αγνοεί ότι δεν είναι αρχείο φωτογραφίας ή video. Αφού τελειώσει, θα δούμε ότι έχει παράγει αρχεία HTML, με τα οποία θα μπορούμε να δούμε το άλμπουμ με τις φωτογραφίες.

# ls

20090907cuba 20090907jamaica details.html imageindex index.html style.css

Βλέπουμε ότι στον κεντρικό φάκελο έχουν δημιουργηθεί μερικά .html αρχεία καθώς και .css, τα οποία είναι η αρχική σελίδα του άλμπουμ με την φωτογραφίες. Στον φάκελο που έτρεξε το Imageindex έχει φτιάξει τα παρακάτω στατικά αρχεία και φακέλους index.html, slides, thumbnail, medium και ένα CSS αρχειο το οποίο είναι υπεύθυνο για την σωστή εμφάνιση των φωτογραφιών.

Πιο πάνω είδαμε τις επιλογές που μπορούμε να ενεργοποιήσουμε και να απενεργοποιήσουμε. Από αυτές τις επιλογές είναι όλες εξορισμού ενεργοποιημένες εκτός από το recurse (που χρησιμοποιείται για να ψάχνει τους υποφακέλους) και το reverse το οποίο κάνει την ταξινόμηση. Αν θέλουμε να είναι ενεργοποιημένο από μόνο του ο καλύτερος τρόπος είναι ο εξής: ανοίγουμε το imageindex με έναν επεξεργαστή κειμένου που θέλουμε και βρίσκουμε τη γραμμή:

$do_recurse = 0;
την οποία τροποποιούμε σε:

$do_recurse = 1;
 

Αυτό σημαίνει ότι χωρίς να γράψουμε την παράμετρο --recurse στην εντολή, το imageindex θα ψάξει από μόνο του όλους τους φακέλους και υποφακέλους.

Αν δεν θέλουμε να πειράξουμε το αρχειο το οποίο μας κάνει όλη την δουλειά, τότε μπορούμε στον φάκελο που το τρέχουμε να φτιάξουμε ένα αρχειο, το .imageindexrc, στο οποίο να έχουμε αποθηκευμένες κάποιες μεταβλητές με την τιμή που θέλουμε, όπως για παράδειγμα την $do_recurse=1; Στην συνέχεια με την παράμετρο -d ~/.imageindexrc θα λέμε στο imageindex να διαβάσει αυτό το αρχείο ρυθμίσεων αντί του προεπιλεγμένου.

Ωραία φτιάξαμε το web album γρήγορα και άπλα, άλλα πως θα δούμε τις φωτογραφίες;
Έχουμε τρεις τρόπους:

1) είτε στήνοντας έναν τοπικό web server,
2) είτε από τον browser πάμε Αρχείο -> Άνοιγμα αρχείου βρίσκουμε το index.html που βρίσκεται μαζί με το details.html ή ακόμα πιο εύκολα κάνοντας διπλό κλικ στο index.html στο διαχειριστή αρχείων,
3) είτε τρέχουμε το imageindex σε κάποιο online web server.

Στην πρώτη περίπτωση που αποφασίσουμε να στήσουμε τοπικό web server και δεν έχουμε εγκαταστήσει ήδη τον Apache, τον εγκαθιστούμε από το repository της διανομής μας. Κατόπιν, στα Debian συστήματα, για να δούμε τις σελίδες που θέλουμε από τον Apache, θα πρέπει να τις αντιγράψουμε στον φάκελο /var/www και στην συνέχεια δίνοντας http://localhost/path_of_photos/ στον browser βλέπουμε τις σελίδες με τις φωτογραφίες. Φυσικά θα πρέπει να έχουμε ξεκινήσει τον Apache με /etc/init.d/apache2 start.

Σε άλλα Linux θα πρέπει να ξέρουμε ή να βρούμε το DocumentRoot του Apache, και στην συνέχεια να αποθηκεύσουμε εκεί ότι έχουμε φτιάξει με το imageindex, είτε να ενεργοποιήσουμε το use dir από το configuration του Apache ώστε να φτιάξουμε ένα φάκελο στο /home και εκεί να τις έχουμε αποθηκευμένες.

Στην τρίτη περίπτωση που έχουμε online web server με τις φωτογραφίες, ανεβάζουμε το imageindex σε κάθε φάκελο με εικόνες. Στην συνέχεια θα πρέπει να αποκτήσουμε πρόσβαση στον web server μας με κονσόλα για να εκτελέσουμε το Imageindex. Μόλις τρέξει και τελειώσει τη δουλειά του, μπορούμε να δούμε online τις φωτογραφίες μας ή και να τις μοιραστούμε με φίλους μας.

Στα στιγμιότυπα, βλέπουμε πως φτιάχνει τα slideshow, τις λεπτομέρειες κάθε αρχείου, και πως φαίνεται όταν υπάρχει και δεύτερος φάκελος με φωτογραφίες.

 

 

 

 

 

 

 

 

  • Το web αλμπουμ με τις φωτογραφίες μας είναι έτοιμο.
  • Οι διαθέσιμες αναλύσεις των εικόνων.
  • Προβολή μιας εικόνας από κοντά...
  • Το ImageIndex αναγνωρίζει τους υποφακέλους.

 

 

Ασκήσεις για το σπίτι

Έπειτα από πρόταση που έγινε στο φόρουμ του περιοδικού, σε αυτές τις σελίδες εκτός από έτοιμα προγράμματα θα δίνουμε ασκήσεις για το σπίτι για αρχάριους χρήστες και για προχωρημένους. Βασικά δεν θα υπάρχει καμία διάκριση! Η λύση θα δίνεται στο επόμενο τεύχος σε ψευδοκρατών, ώστε να μπορεί να την υλοποιήσετε σε όποια γλώσσα προγραμματισμού θέλετε. Τις λύσεις μπορείτε να τις στέλνετε στο kapellakis(at)gmail.com με τίτλο "back the planet εργασία #3", το όνομά σας και την λύση σε ψευδοκώδικα. Αν το έχετε υλοποιήσει γράψτε και την γλώσσα προγραμματισμού.

Άσκηση #3
Φτιάξτε ένα προγραμματάκι το οποίο να μπορεί να αλλάζει τον τίτλο στον index.html αρχειο που δημιουργεί το imageindex σε οποιονδήποτε φάκελο.
Λύση της άσκησης 2
H μαθηματική λύση της άσκησης του προηγούμενου τεύχους είναι:

Dn (x) = (x – n) mod26

οπου D είναι το αποκρυπτογραφημένο κείμενο, x είναι το κρυπτογραφημένο γραμμα και το n πόσες θέσεις πίσω πρέπει να πάει δια τον συνολικό αριθμό των γραμμάτων της αλφάβητου. (26 είναι για την Αγγλική γλωσσά).

Στο φόρουμ του linuxinsider.gr θα δούμε υλοποιημένη αυτή την συνάρτηση και θα την αναλύσουμε...

 

*Ο Γιώργος ασχολείται με την ασφάλεια δικτύων και συστημάτων, με το web development και με τις δοκιμές διανομών Linux/Unix. 


 

 

Tags
Δώσε αστέρια!

MO: (ψήφοι: 0)