|
8.53.9 getimagesize()Retourne la taille d'une image[ Exemples avec getimagesize ] PHP 3, PHP 4, PHP 5
array
getimagesize (
string
filename
,
array
imageinfo
)
getimagesize
va déterminer la taille des images
de type
GIF
,
JPG
,
PNG
,
SWF
,
SWC
,
PSD
,
TIFF
,
BMP
,
IFF
,
JP2
,
JPX
,
JB2
,
JPC
,
XBM
, or
WBMP
et en retourner
les dimensions, le type d'image et une chaîne type
height/width
à placer dans une
balise
HTML
IMG
normale.
Si l'accès à
filename
est impossible ou bien si
filename
n'est pas une image valide,
getimagesize
retournera
FALSE
et générera une erreur
de niveau
E_WARNING
.
| Note | |
Le support de
JPC
,
JP2
,
JPX
,
JB2
,
XBM
et
WBMP
a été ajouté en PHP
4.3.2. Le support de
SWC
, lui, en PHP 4.3.0 et le
support de
TIFF
en PHP 4.2.0.
|
| Note | |
Le support de JPEG 2000 a été ajouté en PHP 4.3.2. Notez que JPC et JP2
sont capables d'avoir des composants avec une profondeur de bit différente.
Dans ce cas, la valeur de "bits" est la plus grande profondeur de bit
rencontrée. De même, les fichiers JP2 disposent du support de
multiple JPEG 2000 codestreams
.
Dans ce cas,
getimagesize
retourne les valeurs pour le premier codestream rencontré à la racine du
fichier.
|
| Note | |
La fonction
getimagesize
ne requiert pas la
bibliothèque GD.
|
getimagesize
retourne un tableau de 4 éléments.
L'index 0 contient la largeur. L'index 1 contient la longueur. L'index 2
contient le type de l'image :
1 =
GIF
,
2 =
JPG
,
3 =
PNG
,
4 =
SWF
,
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ées en PHP 4.3.
L'index 3 contient la chaîne à placer dans les balises
IMG
:
height="xxx" width="yyy"
.
| Exemple avec getimagesize |
<?php list($width, $height, $type, $attr) = getimagesize("img/flag.jpg"); echo "<img src=\"img/flag.jpg\" alt=\"Exemple de getimagesize()\" $attr />"; ?>
|
Le support des URL a été ajouté en PHP 4.0.5.
| getimagesize avec une URL |
<?php $size = getimagesize("http://www.example.com/gifs/logo.gif"); // Si le nom du fichier comporte des espaces, encodez-le ! $size = getimagesize("http://www.example.com/gifs/lo%20go.gif"); ?>
|
Avec les images
JPG
, deux en-têtes supplémentaires sont
retournés :
channels
et
bits
.
channels
vaudra 3 avec les images RGB, et 4 avec les
images CMYK.
bits
est le nombre de bits pour chaque
couleur.
Depuis PHP 4.3,
bits
et
channels
sont présents pour tous 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.
Dans ces cas-là,
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'en-tê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 } ?>
|
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); } ?>
|
Voir aussi
image_type_to_mime_type
,
exif_imagetype
,
exif_read_data
et
exif_thumbnail
.
|