Forum und email

getimagesize

(PHP 4, PHP 5)

getimagesize — Obtener el tamaño de una imagen

Descripción

array getimagesize ( string $nombre_archivo [, array &$info_imagen ] )

La función getimagesize() determinará el tamaño de cualquier archivo de imagen dado y devuelve las dimensiones junto con el tipo de archivo y una cadena de texto de altura/ancho a ser usada en una etiqueta HTML IMG corriente y el tipo de contenido HTTP correspondiente.

getimagesize() puede también devolver un poco más de información en el parámetro info_imagen .

Note: Note que JPC y JP2 son capaces de tener componentes con diferentes profundidades de bits. En este caso, el valor para "bits" es el de la profundidad de bits más alta encontrada. Asimismo, los archivos JP2 pueden contener múltiples secuencias de código JPEG 2000. En este caso, getimagesize() devuelve los valores para la primera secuencia de código que encuentra en la raíz del archivo.

Note: La información sobre íconos es tomada del ícono con la mayor tasa de bits.

Lista de parámetros

nombre_archivo

Este parámetro especifica el archivo sobre el cual desea recuperar información. Puede hacer referencia a un archivo local o (cuando la configuración lo permita) un archivo remoto usando una de las secuencias soportadas.

info_imagen

Este parámetro opcional le permite extraer algunos datos extendidos del archivo de imagen. Actualmente, devolverá los diferentes marcadores APP de JPG como una matriz asociativa. Algunos programas usan estos marcadores para embeber información de texto en imágenes. Un uso muy común es el embeber información » IPTC en el marcador APP13. Puede usar la función iptcparse() para convertir el marcador APP13 binario hacia algo legible.

Valores retornados

Devuelve una matriz con 5 elementos.

Los índices 0 y 1 contienen respectivamente el ancho y la altura de la imagen.

Note: Puede que algunos formatos no contengan una imagen o que contengan múltiples imágenes. En estos casos, puede que getimagesize() no sea capaz de determinar el tamaño de la imagen apropiadamente. getimagesize() devolverá cero como valor de ancho y altura en tales casos.

El índice 2 es una de las constantes IMAGETYPE_XXX que indica el tipo de imagen.

El índice 3 es una cadena de texto con el valor height="yyy" width="xxx" apropiado que puede ser usado directamente en una etiqueta IMG.

mime es el tipo MIME correspondiente de la imagen. Esta información puede ser usada para despachar imágenes con las cabeceras HTTP Content-type correctas:

Example#1 getimagesize() y los tipos MIME

<?php
$tam 
getimagesize($nombre_archivo);
$da fopen($nombre_archivo"rb");
if (
$tam && $da) {
  
header("Content-type: {$tam['mime']}");
  
fpassthru($da);
  exit;
} else {
  
// error
}
?>

channels será 3 para imágenes RGB y 4 para imágenes CMYK. bits es el número de bits para cada color. Sin embargo, para algunos tipos de imagen, la presencia de estos valores puede ser un poco confusa. Como un ejemplo, GIF siempre usa 3 canales por píxel, pero el número de bits por píxel no puede ser calculado para un GIF animado con una tabla de colores global.

En caso de fallos, se devuelve FALSE.

Errors/Exceptions

Si es imposible acceder a la imagen en nombre_archivo , o si no es una imagen válida, getimagesize() generará un error de nivel E_WARNING. En caso de un error de lectura, getimagesize() generarrá un error de nivel E_NOTICE.

Registro de cambios

Versión Descripción
5.3.0 Se agregó el soporte para íconos.
5.2.3 Los errores de lectura generados por esta función disminuyeron su nivel a E_NOTICE, de su nivel anterior E_WARNING.
4.3.2 Apareció es soporte para JPC, JP2, JPX, JB2, XBM, y WBMP.
4.3.2 El soporte para JPEG 2000 fue agregado para el parámetro info_imagen .
4.3.0 bits y channels están presentes para otros tipos de imágenes también.
4.3.0 Se agregó mime.
4.3.0 Se agregó el soporte para SWC.
4.2.0 Se agregó el soporte para TIFF.
4.0.5 Se agregó el soporte para URL.

Ejemplos

Example#2 getimagesize (archivo)

<?php
list($ancho$altura$tipo$atr) = getimagesize("img/bandera.jpg");
echo 
"<img src=\"img/bandera.jpg\" $atr alt=\"ejemplo de getimagesize()\" />";
?>

Example#3 getimagesize (URL)

<?php
$tam 
getimagesize("https://www.example.com/gifs/logo.gif");

// si el nombre de archivo contiene un espacio, codificarlo apropiadamente
$tam getimagesize("https://www.example.com/gifs/lo%20go.gif");

?>

Example#4 getimagesize() devolviendo IPTC

<?php
$tam 
getimagesize("imagen_prueba.jpg"$info);
if (isset(
$info["APP13"])) {
    
$iptc iptcparse($info["APP13"]);
    
var_dump($iptc);
}
?>

Notes

Note: La función getimagesize() no requiere de la biblioteca de imágenes GD.