Funciones de GD e Imágenes
PHP Manual

getimagesize

(PHP 4, PHP 5)

getimagesizeObtiene el tamaño de una imagen

Descripción

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

La función getimagesize() determinará el tamaño de un archivo de imagen dado y devolverá las dimensiones junto con el tipo de archivo y una cadena de texto con el alto/ancho para ser usada dentro una etiqueta IMG de HTML normal 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 son capaces de tener componentes con diferente profundidad de bit. En este caso, el valor para "bits" es la mayor profundidad de bit encontrada. También, los archivos JP2 pueden contener múltiples codestreams JPEG 2000. En este caso, getimagesize() devuelve los valores del primer codestream que encuentre en la raíz del archivo.

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

Parámetros

filename

Este parámetro especifica el archivo del que se quiere recuperar información. Puede referenciar a un archivo local o (si la configuración lo permite) a un archivo remoto usando uno de los flujos soportados.

imageinfo

Este parámetro opcional permite extraer alguna información ampliada del archivo de imagen. Actualmente, esto 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 analizar 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 no pueden contener imagen o pueden 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 entos casos.

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

El índice 3 es una cadena de texto con la cadena height="yyy" width="xxx" correcta 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_archivo);
$fp fopen($nombre_archivo"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.

Si falla se devuleve 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 Añadido 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ó mime.
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.
4.0.5 Se añadió el soporte para URL.

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 archivo 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.

Ver también


Funciones de GD e Imágenes
PHP Manual