7.41 Images 
7 Index des fonctions 
 Manuel PHP 
 . Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies . Exemples . exif_imagetype ->exif_read_data . exif_thumbnail . gd_info . getimagesize . image_type_to_mime_type . image2wbmp . imagealphablending . imageantialias . imagearc . imagechar . imagecharup . imagecolorallocate . imagecolorallocatealpha . imagecolorat . imagecolorclosest . imagecolorclosestalpha . imagecolorclosesthwb . imagecolordeallocate . imagecolorexact . imagecolorexactalpha . imagecolormatch . imagecolorresolve . imagecolorresolvealpha . imagecolorset . imagecolorsforindex . imagecolorstotal . imagecolortransparent . imagecopy . imagecopymerge . imagecopymergegray . imagecopyresampled . imagecopyresized . imagecreate . imagecreatefromgd . imagecreatefromgd2 . imagecreatefromgd2part . imagecreatefromgif . imagecreatefromjpeg . imagecreatefrompng . imagecreatefromstring . imagecreatefromwbmp . imagecreatefromxbm . imagecreatefromxpm . imagecreatetruecolor . imagedashedline . imagedestroy . imageellipse . imagefill . imagefilledarc . imagefilledellipse . imagefilledpolygon . imagefilledrectangle . imagefilltoborder . imagefontheight . imagefontwidth . imageftbbox . imagefttext . imagegammacorrect . imagegd . imagegd2 . imagegif . imageinterlace . imageistruecolor . imagejpeg . imageline . imageloadfont . imagepalettecopy . imagepng . imagepolygon . imagepsbbox . imagepscopyfont . imagepsencodefont . imagepsextendfont . imagepsfreefont . imagepsloadfont . imagepsslantfont . imagepstext . imagerectangle . imagerotate . imagesavealpha . imagesetbrush . imagesetpixel . imagesetstyle . imagesetthickness . imagesettile . imagestring . imagestringup . imagesx . imagesy . imagetruecolortopalette . imagettfbbox . imagettftext . imagetypes . imagewbmp . iptcembed . iptcparse . jpeg2wbmp . png2wbmp . read_exif_data
 
  | 
 
  7.41.9 exif_read_data()Lit les en-têtes EXIF des images JPEG et TIFF[ Exemples avec exif_read_data ]   PHP 4 >= 4.2.0 
array
 exif_read_data (
string
 
filename
 ,
string
 
sections
 ,
bool
 
arrays
 ,
bool
 
thumbnail
 )
exif_read_data
  lit les en-têtes EXIF des images JPEG et TIFF.
     Elle retourne un tableau associatif avec comme index les noms des
     en-têtes, et en valeur, les valeurs des en-têtes. Si aucune donnée n'a pu
     être lue, elle retourne  
FALSE
 .
     
filename
  est le nom du fichier à lire. Il ne peut pas
     être une URL.
     
sections
  est une liste de valeur séparée par des virgules
     des sections qui devront être présentées dans le tableau de résultat.
      
 
| FILE | 
FileName (nom du ficher), FileSize(taille du fichier), 
        FileDateTime (date de modification du fichier), SectionsFound (sections trouvées) | 
 
| COMPUTED | 
html (attributs HTML), Width (largeur), Height (Hauteur), IsColor (couleur ou noir et blanc)
        et quelques autres si ils sont disponibles.
         | 
 
| ANY_TAG | 
Toutes les informations concernant cette balise, comme par exemple
        IFD0, EXIF, ... | 
 
| IFD0 | 
Toutes les balises IFD0. Dans les images normales, ils contiennent les
        dimensions de l'images, etc... | 
 
| THUMBNAIL | 
Un fichier qui contient une minitaure, si il y a un second IFD.
        Toutes les informations mises en balises à propos de cette miniature
        seront stockées dans cette section. | 
 
| COMMENT | 
En-tête de commentaire des images JPEG. | 
 
| EXIF | 
La section EXIF est une sous section de la section IFD0. Elle
        contient des informations plus détaillées sur les images. La plupart
        de ces index sont reliés aux appareils numériques. | 
 
 
arrays
  spécifie si chaque section doit être
     un tableau ou non. Les sections  
FILE
 ,
      
COMPUTED
  et  
THUMBNAIL
  seront
     toujours transformées en tableau, car elle contiennent des noms qui
     risquent d'être en conflit.
     
thumbnail
  indique si il faut lire la miniature
     elle-même, et pas seulement les données en balises.
     
| Note |  | 
 
      Les en-têtes Exif sont souvent présents dans les en-têtes d'images JPEG/TIFF,
      générées par les appareils numériques, mais malheureusement, chaque
      fabriquant d'appareils ont tous une idée différente pour
      étiquetter leurs images, et vous ne pourrez pas compter sur des
      en-têtes communs.
      
 |   
 | Exemple avec exif_read_data |  
<?php echo "test1.jpg : <br />\n"; $exif = exif_read_data ('tests/test1.jpg','IFD0'); echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />"; $exif = exif_read_data ('tests/test2.jpg',0,true); echo "test2.jpg : <br />\n"; foreach($exif as $key=>$section) {     foreach($section as $name=>$val) {         echo "$key.$name: $val<br />\n";     } }?>
 
 |   
| Note |  | 
 
      Si l'image contient des données IFD0, alors la section COMPUTED contient
      l'entrée ByteOrderMotorola qui vaut 0 pour little-endian (intel) et 1 pour
      big-endian (motorola). Ceci a été ajoué en PHP 4.3.
      
      Lorsqu'un en-tête Exif contient une note de Copyright, cet en-tête 
      peut alors contenir lui même deux valeurs. Comme cette solution est
      incohérente avec les standards Exif 2.10, la section COMPUTED retournera
      les deux en-têtes,  
Copyright.Photographer
 
      et  
Copyright.Editor
 , tandis que les sections IFD0 contiennent
      le tableau d'octets avec des caractères NULL pour séparer les deux entrées.
      Ou bien, juste la première entére si le type de données était erroné
      (comportement par défaut de Exif). La section COMPUTED va aussi contenir une
      entrée  
Copyright
 , qui sera soit la chaîne originale
      de copyright, soit une liste de valeur séparée par des virgules de
      photos et de copyright de l'auteur.
      
 |   
| Note |  | 
 
      La balise UserComment présente le même problème que la balise Copyright. Elle
      peut stocker deux valeurs : en premier, le jeu de caractères utilisé, puis
      la valeur elle-même. Si c'est le cas, la section IFD contiendra uniquement
      le jeu de caractères, ou bien un tableau d'octets. La section COMPUTED 
      va stocker les deux entrées  
UserCommentEncoding
  et 
       
UserComment
 . L'index  
UserComment
  
      est disponbile dans les deux cas, et il est préférable de l'utiliser, plutôt 
      que la valeur de la section IFD0.
      
      Si les commentaires utilisateurs utilisent l'Unicode ou bien le JIS et que le module
      mbstring est accessible, ces jeux de caractères seront automatiquement changés
      en fonction la configuration de EXIF dans le fichier  
php.ini
 . Cette
      possibilité a été ajoutée en PHP 4.3.
      
 |   
| Note |  | 
 
     La hauteur (Height) et la largeur (Width) sont calculés de la même façon que
     la fonction  
getimagesize
  le fait, et leurs valeurs ne
     devraient jamais différer. De même, l'index html est la représentation textuelle
     utilisée dans une balise image HTML classique.
      
 |   
| Note |  | 
 
     Depuis PHP 4.3, cette fonction peut aussi lire les sections  
IFD
 
     incluent dans les tableaux, et retournée sous cette forme. De plus, la taille
     d'une miniature intégrée est retournée dans le sous tableau 
      
THUMBNAIL
  et la fonction  
exif_read_data
  
     peut retourner les miniatures au format  
TIFF
 . Enfin, il n'y a
     plus de longueur maximale pour les valeurs retournées (hormis la place en mémoire).
      
 |   
| Note |  | 
 
       Cette fonction est uniquement disponible en PHP 4, si il a été compilé
       avec l'option  
--enable-exif
 .
       Ses fonctionnalités et comportement ont changés en PHP 4.2. Les premières
       versions étaient très instables.
       
       Depuis PHP 4.3, les commentaires utilisateurs peuvent être automatiquement
       convertis d'un jeu de caractères à l'autre avec l'extension
        
--enable-mbstring
 .
       
       Cette fonction ne requiert pas la librairie GD.
       
       Voir aussi
        
exif_thumbnail
  et
        
getimagesize
 .
       
 |   
 |