getimagesize
(PHP 4, PHP 5)
getimagesize — Retourne la taille d'une image
Description
$filename
[, array &$imageinfo
] )
getimagesize() détermine la taille de l'image
fournie et en retourner les dimensions, le type d'image et une chaîne type
height/width à placer dans une balise
HTML IMG
normale
et le type de contenu HTTP correspondant.
getimagesize() peut également retourner plus d'informations
dans le paramètre imageinfo
.
Note: 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: Les informations sur les icônes sont récupérées depuis l'icône possédant le plus haut débit.
Liste de paramètres
-
filename
-
Ce paramètre spécifie le fichier dont vous voulez récupérer les informations. Il peut être un fichier local ou (suivant la configuration), un fichier distant en utilisant un des flux supportés.
-
imageinfo
-
Ce paramètre optionnel 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 à » IPTC. Vous pouvez utiliser la fonction iptcparse() pour analyser ce marqueur, et obtenir des informations intelligibles.
Valeurs de retour
Retourne un tableau contenant 7 éléments.
L'index 0 contient la largeur. L'index 1 contient la hauteur.
Note:
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.
L'index 2 est une constante parmi IMAGETYPE_XXX, indiquant le type de l'image.
L'index 3 contient la chaîne à placer dans les balises IMG : height="xxx" width="yyy".
mime correspond au type MIME d'une image. Cette information peut être utilisée pour envoyer l'en-tête HTTP Content-type correct :
Exemple #1 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 } ?>
channels sera 3 pour des images RGB et 4 pour des images CMYK.
bits est le nombre d'octets pour chaque couleur.
Cependant, la présence des valeurs de channels et de bits 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.
Si une erreur survient, FALSE
est retourné.
Erreurs / Exceptions
Si l'accès à filename
est impossible,
getimagesize() générera une erreur de niveau
E_WARNING
. Si une erreur survient lors de la lecture,
getimagesize() générera une erreur de niveau
E_NOTICE
.
Historique
Version | Description |
---|---|
5.3.0 | Ajout du support des icônes. |
5.2.3 |
Les erreurs de lecture générées par cette fonction passent de niveau
E_WARNING à E_NOTICE .
|
4.3.2 | Le support de JPC, JP2, JPX, JB2, XBM, et WBMP devient disponible. |
4.3.2 |
Le support JPEG 2000 a été ajouté pour le paramètre
imageinfo .
|
4.3.0 | bits et channels sont présents pour les autres types d'images. |
4.3.0 | mime a été ajouté. |
4.3.0 | Le support de SWC et IFF a été ajouté. |
4.2.0 | Le support de TIFF a été ajouté. |
4.0.6 | Le support des BMP et PSD a été ajouté. |
4.0.5 | Le support d'URL a été ajouté. |
Exemples
Exemple #2 Exemple avec getimagesize()
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"Exemple avec getimagesize()\" />";
?>
Exemple #3 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"); ?>
Exemple #4 getimagesize() qui retourne IPTC
<?php $size = getimagesize("testimg.jpg", $info); if (isset($info["APP13"])) { $iptc = iptcparse($info["APP13"]); var_dump($iptc); } ?>
Notes
Note:
Cette fonction ne nécessite pas la bibliothèque GD.
Voir aussi
- image_type_to_mime_type() - Lit le Mime-Type d'un type d'image
- exif_imagetype() - Détermine le type d'une image
- exif_read_data() - Lit les en-têtes EXIF dans les images JPEG ou TIFF
- exif_thumbnail() - Récupère la miniature d'une image TIFF ou JPEG