getimagesize

(PHP 4, PHP 5, PHP 7)

getimagesizeObtener el tamaño de una imagen

Descripción

getimagesize ( string $filename [, array &$imageinfo ] ) : array

La función getimagesize() determinará el tamaño de un fichero de imagen dado y devolverá las dimensiones junto con el tipo de fichero, una cadena de texto con el alto/ancho para utilizarla dentro una etiqueta IMG de HTML, y el tipo de contenido HTTP correspondiente.

getimagesize() también puede devolver alguna información más con el parámetro imageinfo.

Nota: Observe que JPC y JP2 pueden tener componentes con diferente profundidad de bit. En tal caso, el valor para "bits" es la mayor profundidad de bit encontrada. También, los ficheros JP2 pueden contener múltiples flujos de código JPEG 2000. En este caso, getimagesize() devuelve los valores del primer flujo de código que encuentre en la raíz del fichero.

Nota: La información sobre iconos se recupera desde el icono con la mayor tasa de bit.

Parámetros

filename

Este parámetro especifica el fichero del cual recuperar información. Puede hacer referencia a un fichero local o (si la configuración lo permite) a un fichero remoto usando uno de los flujos soportados.

imageinfo

Este parámetro opcional permite extraer alguna información ampliada del fichero de imagen. Actualmente, devolverá los diferentes marcadores APP de JPG como un array asociativo. Algunos programas usan estos marcadores APP para incluir información de texto en imágenes. Un uso muy común es incluir información » IPTC en el marcador APP13. Se puede usar la función iptcparse() para convertir el marcador binario APP13 en algo que sea legible.

Valores devueltos

Devuelve un array de hasta 7 elementos. No todos los tipos de imagen incluirán los elementos channels y bits.

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

Nota:

Algunos formatos podrían no contener imágenes o contener múltiples imágenes. En estos casos, getimagesize() no será capaz de determinar apropiadamente el tamaño de la imagen. getimagesize() devolverá cero para el ancho y el alto en estos casos.

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

El índice 3 es una cadena de texto con el string correcot height="yyy" width="xxx" que puede ser usada dierectamente en una etiqueta IMG.

mime es el tipo MIME correspondiente de la imagen. Esta información se puede usar para emitir imágenes con la cabecera HTTP Content-type correcta:

Ejemplo #1 getimagesize() y tipos MIME

<?php
$tamaño 
getimagesize($nombre_fichero);
$fp fopen($nombre_fichero"rb");
if (
$tamaño && $fp) {
    
header("Content-type: {$tamaño['mime']}");
    
fpassthru($fp);
    exit;
} else {
    
// error
}
?>

Los channels serán 3 para ímagenes RGB y 4 para ímagenes CMYK.

bits es el número de bits de cada color.

Para algunos tipos de imagen, la presencia de los valores channels y bits pueden ser un poco confusos. Como ejemplo, GIF siempre usa 3 canales por píxel, pero el número de bits por pixel no puede ser calculado para un GIF animado con una tabla de colores global.

En caso de error devuelve FALSE.

Errores/Excepciones

Si el acceso a la imagen filename es imposible, getimagesize() generará un error de nivel E_WARNING. Si se produce un error de lectura, getimagesize() generará un error de nivel E_NOTICE.

Historial de cambios

Versión Descripción
5.3.0 Se añadió el soporte para iconos.
5.2.3 Los errores de lectura generados por esta función se degradaron desde E_WARNING a E_NOTICE.
4.3.2 Se añadió el soporte para JPC, JP2, JPX, JB2, XBM y WBMP.
4.3.2 Se añadió el soporte para JPEG 2000 para el parámetro imageinfo.
4.3.0 bits y channels están presentes para otro tipo de imágenes también.
4.3.0 Se añadió el soporte para SWC y IFF.
4.2.0 Se añadió el soporte para TIFF.
4.0.6 Se añadió el soporte para BMP y PSD.

Ejemplos

Ejemplo #2 Ejemplo degetimagesize()

<?php
list($ancho$alto$tipo$atributos) = getimagesize("img/flag.jpg");
echo 
"<img src=\"img/flag.jpg\" $atributos alt=\"Ejemplo de getimagesize()\" />";
?>

Ejemplo #3 getimagesize (URL)

<?php
$tamaño 
getimagesize("http://www.example.com/gifs/logo.gif");

// si el nombre de fichero contiene espacios, codifíquelo apropiadamente
$tamaño getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Ejemplo #4 getimagesize() devolviendo IPTC

<?php
$tamaño 
getimagesize("prueba.jpg"$info);
if (isset(
$info["APP13"])) {
    
$iptc iptcparse($info["APP13"]);
    
var_dump($iptc);
}
?>

Notas

Nota:

Esta función no requiere la librería GD image.

Nota:

Esta función requiere que filename sea un fichero de imagen válido. Si se proporciona un fichero que no sea imagen, este podría ser detectado incorrectamente como una imagen y la función devolver como éxito.

No de debe usar getimagesize() para comprobar que una fichero dado es una imagen válida. Use una solución a propósito tal como la extensión Fileinfo en su lugar.

Ver también