(PHP 4, PHP 5, PHP 7)
getimagesize — Obtener el tamaño de una imagen
$filename
[, array &$imageinfo
] )
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.
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.
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 entos 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
.
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
.
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. |
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);
}
?>
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.