H PHP δεν περιορίζεται μόνο στη δημιουργία ενός HTML output. Μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία και διαχείρηση αρχείων εικόνας ποικίλων τύπων, συμπεριλαμβανομένων των gif, png, jpg, wbmp, και xpm. Ακόμα πιο βολικό είναι το γεγονός ότι η PHP μπορεί να στείλει stream εικόνων κατευθείαν σε έναν browser. Θα πρέπει να κάνετε compile την PHP με τη βιβλιοθήκη GD, των συναρτήσεων εικόνας, για να λειτουργήσει με αυτόν των τρόπο. Οι GD και PHP μπορεί να χρειαστούν και άλλες βιβλιοθήκες, πράγμα που εξαρτάται από το ποιους τύπους εικόνας έχεται επιλέξει να ασχοληθείτε.
Μπορείτε να χρησιμοποιείσετε αυτές τις συναρτήσεις, στην PHP, για να πάρετε το μέγεθος των JPEG, GIF, PNG, SWF, TIFF και JPEG2000 εικόνων.
Óçìåßùóç: Διαβάστε το τμήμα που αναφέρεται στις απαιτήσεις, για πληροφορίες σχετικά με το πώς μπορείτε να αυξήσεται τη δυνατότητα ανάγνωσης, γραφής και τροποποίησης εικόνων, καθώς επίσης και της ανάγνωσης των meta data των εικόνων που λαμβάνονται από ψηφιακές cameras.
Εάν έχετε τη βιβλιοθήκη GD (διαθέσιμη στο http://www.boutell.com/gd/) θα είστε, επίσης, σε θέση να δημιουργείσετε και να διαχειριστείτε εικόνες.
Ο τύπος των εικόνων που μπορείτε να διαχειριστείτε, εξαρτάται από την έκδοση της GD που είναι εγκατεστημένη, και από οποιαδήποτε άλλη βιβλιοθήκη μπορεί να χρειστεί η GD για να προσπελάσει τον απαιτούμενο τύπο. Οι παλιότερες της gd-1.6 εκδόσεις της GD, υποστηρίζουν εικόνες τύπου GIF, ενώ δεν υποστηρίζουν τις PNG, ενώ οι εκδόσεις μετά την gd-1.6 υποστηρίζουν τον PNG τύπο, αλλά όχι τον GIF.
Óçìåßùóç: Από την έκδοση 4.3 της PHP υπάρχει μαζί με το πακέτο μία έκδοση της βιβλιοθήκης GD. Αυτή έχει κάποια επιπλέον χαρακτηριστικά, όπως το alpha blending και θα πρέπει να χρησιμοποιείται αυτή, κατά προτίμηση, μιας και η codebase της είναι καλύτερα διατηρημένη και πιο σταθερή.
Μπορεί να επιθυμείτε την GD να διαχειρίζεται περισσότερους τύπους εικόνων.
Ðßíáêáò 1. Υποστηριζόμενοι τύποι εικόνων
Τύπος εικόνας | Βιβλιοθήκη που πρέπει να κάνετε download | Σημειώσεις |
---|---|---|
gif | Υποστηρίζεται σε εκδόσεις μεγαλύτερες της gd-1.6. Read-only GIF υποστήριξη είναι διαθέσιμη στην έκδοση 4.3.0 της PHP 4.3.0 και τη συνημμένη GD βιβλιοθήκη. | |
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ | |
png | http://www.libpng.org/pub/png/libpng.html | Υποστηρίζεται σε εκδόσεις της GD που είναι μεγαλύτερες της gd-1.6. |
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Είναι πιθανόν να έχετε ήδη εγκατεστημένη αυτή τη βιβλιοθήκη εάν έχετε ένα X-Environment. |
Μπορεί να επιθυμείτε την GD να χειρίζεται διάφορες γραμματοσειρές. Ακολουθούν οι υποστηριζόμενες βιβλιοθήκες γραμματοσειρών:
Ðßíáêáò 2. Υποστηριζόμενες βιβλιοθήκες γραμματοσειρών
Βιβλιοθήκη γραμματοσειρών | Download | Σημειώσεις |
---|---|---|
FreeType 1.x | http://www.freetype.org/ | |
FreeType 2 | http://www.freetype.org/ | |
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Υποστήρικη για Type 1 fonts. |
Εάν έχεται κάνει compile την PHP με --enable-exif είστε σε θέση να εργαστείτε με τις πληροφορίες που βρίσκονται στα headers των JPEG και TIFF εικόνων. Με αυτόν τον τρόπο μπορεί να γίνει ανάγνωση των meta data, που όπως αναφέρθηκε και ποηγουμένως παράγονται από τις ψηφιακές cameras. Αυτές οι συναρτήσεις δεν απαιτούν τη βιβλιοθήκη GD.
Óçìåßùóç: Η PHP δεν απαιτεί κάποια επιπλέον βιβλιοθήκη για το exif module.
Για να έχετε GD υποστήριξη, πρέπει να κάνετε configure την PHP με την επιλογή --with-gd[=DIR], όπου DIR είναι το όνομα του καταλόγου εγκατάστασης της. Για να χρησιμοποείσετε την προτινόμενη, συνημμένη, έκδοση της GD βιβλιοθήκης (που πρωτοβγήκε με την PHP 4.3.0), χρησιμοποιείστε την επιλογή --with-gd. Στα Windows, θα πρέπει να συμπεριλάβετε το GD2 DLL php_gd2.dll ως extension στο php.ini. Το GD1 DLL php_gd.dll αφαιρέθηκε στην έκδοση 4.3.2 της PHP. Επίσης πρόσεξτε ότι οι προτιμόμενες truecolor image συναρτήσεις, όπως είναι η imagecreatetruecolor(), απαιτούν GD2.
Για να κάνετε disable την GD υποστήριξη στην PHP 3, προσθέστε την επιλογή --without-gd στο configure line σας.
Μπορείτε να αυξήσετε τις δυνατότητες της GD, ώστε να χειρίζεται περισσότερους τύπους εικόνων, με το να καθορίσετε τον configure switch --with-XXXX, στο PHP configure line σας.
Ðßíáêáò 3. Υποστηριζόμενοι τύποι εικόνας
Τύπος εικόνας | Configure Switch |
---|---|
jpeg-6b | Για να αποκτήσετε υποστήριξη για τον jpeg-6b, προσθέστε την --with-jpeg-dir=DIR. |
png | Για να αποκτήσετε υποστήριξη για τον png, προσθέστε την --with-png-dir=DIR. Προσέξτε ότι η libpng απαιτεί την zlib library, για αυτό το λόγο προσθέστε την επιλογή --with-zlib-dir[=DIR] στο configure line σας. |
xpm | Για να αποκτήσετε υποστήριξη για τον xpm, προσθέστε την --with-xpm-dir=DIR. Εάν η διαχείριση δεν μπορεί να εντοπίσει τις απαιτούμενες βιβλιοθήκες, μπορείτε να προσθέσετε το path για τις X11 βιβλιοθήκες σας. |
Για να επεκτείνετε τις δυνατότητες της GD, ώστε να χειρίζεται διάφορες γραμματοσειρές, προσδιορίστε τον configure switch --with-XXXX, στο PHP onfigure line σας.
Ðßíáêáò 4. Υποστηριζόμενες βιβλιοθήκες γραμματοσειρών
Βιβλιοθήκη γραμματοσειρών | Configure Switch |
---|---|
FreeType 1.x | Για να αποκτείσετε υποστήριξη για τη FreeType 1.x, προσθέστε την --with-ttf[=DIR]. |
FreeType 2 | Για να αποκτείσετε υποστήριξη για τη FreeType 2, προσθέστε την --with-freetype-dir=DIR. |
T1lib | Για να αποκτείσετε υποστήριξη για τη T1lib (Type 1 fonts), προσθέστε την --with-t1lib[=DIR]. |
Native TrueType string συνάρτηση | Για να αποκτείσετε υποστήριξη για τη native TrueType string συνάρτηση, προσθέστε την --enable-gd-native-ttf. |
Η συμπεριφορά αυτών των συναρτήσεων επιρεάζεται από τις ρυθμίσεις στο php.ini.
H exif υποστηρίζει την αυτόματη μετατροπή για Unicode και JIS κωδικοποιήσεις χαρακτήρων των σχολίων του χρήστη, όταν το module mbstring είναι διαθέσιμο. Αυτό γίνεται με την αποκωδικοποίηση, σε πρώτη φάση, του σχολίου χρησιμοποιώντας το καθορισμένο σύνολο χαρακτήρων. Μετά από αυτό, το αποτέλεσμα κωδικοποιείται με ένα άλλο σύνολο χαρακτήρων το οποίο ταιριάζει με το HTTP output.
Ðßíáêáò 5. Επιλογές διαχείρισης του exif
Όνομα | Προκαθοριμένη τιμή | Υποκείμενη σε αλλαγή |
---|---|---|
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL |
Ακολουθεί μια μικρή επεξήγηση των directive ρυθμίσεων.
Η exif.encode_unicode καθορίζει το σύνολο χαρακτήρων με το οποίο θα διαχειριστούν τα UNICODE σχόλια του χρήστη. Αυτό αντιστοιχεί στο ISO-8859-15, που λειτουργεί κανονικά για τις περισσότερες μη-ασιατικές χώρες. Η ρύθμιση μπορεί να είναι κενή ή να περιέχει μία κωδικοποίηση που να υποστηρίζεται από το mbstring. Εάν είναι κενή, χρησιμοποιείται η τρέχουσα εσωτερική κωδικοποίηση του mbstring.
Η exif.decode_unicode_motorola καθορίζει το εσωτερικό σύνολο χαρακτήρων εικόνας, για σχόλια χρήστη με Unicode κωδικοποίηση, όταν η εικόνα είναι σε motorola byte order (big-endian). Αυτή η ρύθμιση δεν μπορεί να είναι κενή, αλλά μπορείτε να καθορίσετε μία λίστα από κωδικοποιήσεις που θα υποστηρίζονται από το mbstring. Η προκαθορισμένη είναι η UCS-2BE.
Η exif.decode_unicode_intel καθορίζει το εσωτερικό σύνολο χαρακτήρων εικόνας, για σχόλια χρήστη με Unicode κωδικοποίηση, όταν η εικόνα είναι σε intel byte order (little-endian). Αυτή η ρύθμιση δεν μπορεί να είναι κενή, αλλά μπορείτε να καθορίσετε μία λίστα από κωδικοποιήσεις που θα υποστηρίζονται από το mbstring. Η προκαθορισμένη είναι η UCS-2BE.
Η exif.encode_jis καθορίζει το σύνολο χαρακτήρων βάσει του οποίου διαχειρίζονατι τα JIS σχόλια χρήστη. Αυτή καθορίζεται να έχει μία κενή τιμή, η οποία αναγκάζει τις συναρτήσεις να χρησιμοποιούν την τρέχουσα εσωτερική κωδικοποίηση του mbstring.
Η exif.decode_jis_motorola καθορίζει το εσωτερικό σύνολο χαρακτήρων εικόνας για σχόλια χρήστη με JIS κωδικοποίηση, όταν η εικόνα είναι σε motorola byte order (big-endian). Αυτή η ρύθμιση δεν μπορεί να είναι κενή, αλλά μπορείτε να καθορίσετε μία λίστα από κωδικοποιήσεις που θα υποστηρίζονται από το mbstring H προκαθορισμένη είναι η JIS.
Η exif.decode_jis_intel καθορίζει το εσωτερικό σύνολο χαρακτήρων εικόνας για σχόλια χρήστη με Unicode κωδικοποίηση, όταν η εικόνα είναι σε intel byte order (little-endian). Αυτή η ρύθμιση δεν μπορεί να είναι κενή, αλλά μπορείτε να καθορίσετε μία λίστα από κωδικοποιήσεις που θα υποστηρίζονται από το mbstring. H προκαθορισμένη είναι η JIS.
Αυτή η επέκταση δεν έχει resource τύπους ορισμένους.
Οι σταθερές παρακάτω ορίζονται από αυτή την επέκταση, και θα είναι διαθέσιμες μόνο αν η επέκταση έχει γίνει compile μέσα στην PHP ή έχει φορτωθεί δυναμικά κατά την εκτέλεση.