(PHP 4, PHP 5)
getimagesize — Obtiene el tamaño de una imagen
$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.
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 una matriz asociativa. 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.
Devuelve una matriz de 7 elementos.
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
.
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 | 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. |
Ejemplo #2 Ejemplo de getimagesize()
<?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);
}
?>
Nota:
Esta función no requiere la librería GD image.