7.40.12 getimagesize()Retourne la taille d'une image[ Exemples avec getimagesize ] PHP 3, PHP 4
array
getimagesize (
string
filename
,
array
imageinfo
)
getimagesize
va déterminer la taille des images
de type
GIF
,
JPG
,
PNG
,
SWF
,
PSD
ou
BMP
et en retourner
les dimensions, le type d'image, et une chaîne type
"height/width", à placer dans une
balise
HTML
ou
IMG
normale.
Si l'accès au fichier
filename
est impossible,
ou si ce n'est pas un format d'image supporté,
getimagesize
retournera
FALSE
et générera une alerte.
getimagesize
retourne un tableau de 4 éléments.
L'index 0 contient la longueur. L'index 1 contient la largeur. L'index 2
contient le type de l'image :
1 =
GIF
,
2 =
JPG
,
3 =
PNG
,
5 =
PSD
,
6 =
BMP
,
7 =
TIFF
(Ordre des octets Intel),
8 =
TIFF
(Ordre des octets Motorola),
9 =
JPC
,
10 =
JP2
,
11 =
JPX
,
12 =
JB2
,
13 =
SWC
,
14 =
IFF
.
Ces valeurs correspondent aux constantes IMAGETYPE
qui ont été ajoutée en PHP 4.3.
L'index 3 contient la chaîne à placer dans les balises
HTML
:
"height=xxx width=xxx"
.
Exemple avec getimagesize |
<?php list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); echo "<img src=\"img/flag.jpg\" $attr>"; ?>>
|
getimagesize avec une URL |
<?php $size = getimagesize("http://www.php.net/gifs/logo.gif"); ?>
|
Avec les images
JPEG
, deux en-têtes supplémentaires sont
retournés :
channel
et
bits
.
channel
vaudra 3 avec les images RGB, et 4 avec les
images CMYK.
bits
est le nombre de bits de chaque couleur.
Depuis PHP 4.3,
bits
et
channels
sont présent pour tous les types d'images.
Cependant, la présence de ces valeurs peut mener à la confusion. Par exemple,
une image
GIF
utilise toujours trois canaux par pixel,
mais le nombre de bits par pixel ne peut être calculé dans le cas
d'une image animée
GIF
ayant une table de couleur globale.
Certains formats peuvent ne contenir aucune image, ou bien plusieurs images.
Dans ces cas,
getimagesize
peut ne pas être capable de
déterminer correctement la taille de l'image.
getimagesize
retourne alors zéro comme taille de hauteur et largeur.
Depuis PHP 4.3,
getimagesize
retourne aussi un paramètre
additionnel,
mime
, qui correspond au type MIME d'une image.
Cette information peut être utilisée pour envoyer l'entête HTTP correct.
getimagesize et types MIME |
<?php $size = getimagesize ($filename); $fp=fopen($filename, "rb"); if ($size && $fp) { header("Content-type: {$size['mime']}"); fpassthru($fp); exit; } else { // error } ?>
|
Si l'accès à
filename
est impossible,
ou si ce n'est pas une image valide,
getimagesize
retournera
NULL
et générera une alerte.
Le paramètre optionnel
imageinfo
permet
d'extraire des informations supplémentaires du fichier image.
Actuellement, cette option va retourner différents marqueurs
JPG
APP dans un tableau associatif. Certains programmes
utilisent ces marqueur APP pour préciser les informations dans
les balises HTML. Un marqueur commun est le marqueur APP13, décrit
à http://www.iptc.org/ . Vous pouvez utiliser
la fonction
iptcparse
pour analyser ce marqueur, et
obtenir des informations intelligibles.
getimagesize qui retourne IPTC |
<?php $size = getimagesize("testimg.jpg",&$info); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); var_dump($iptc); } ?>
|
|