
Hay veces, cuando trabajas con PHP, que necesitas realizar cualquier acción sobre una imagen. Acciones como un re-escalado, un recorte, un cambio de formato,… Para todo esto, previamente, debemos tener cierto conocimiento de la imagen que vamos a tratar y conocer ciertos atributos de la misma, tales como sus dimensiones y su tipo de formato.
En estos casos, lo mejor que puedes hacer es usar la función que el propio lenguaje PHP nos ofrece y que nos brinda una información, en la mayoría de los casos, más que suficiente. Esta función es getimagesize.
Si realizas una llamada a esta función pasándole, como parámetro, la ruta y el nombre de la imagen de la cual obtener información, el resultado será un array con una información parecida a la siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 | /* Array devuelto por la función getimagesize ( $archivoImagen ) donde el parámetro es la ruta y el nombre de la imagen */ Array ( [0] => 2356 [1] => 1571 [2] => 2 [3] => width="2356" height="1571" [bits] => 8 [channels] => 3 [mime] => image/jpeg ) |
Tal como puedes ver, del array de datos resultantes, los que más nos interesarán serán las posiciones 0, 1 y 2. Estas posiciones contienen lo siguiente:
- Posición 0. Anchura de la imagen.
- Posición 1. Altura de la imagen.
- Posición 2. Tipo de la imagen. Este valor se encuentra dentro de un conjunto de constantes predefinidas en PHP. Los posibles valores son los siguientes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | IMAGETYPE_GIF -> 1 IMAGETYPE_JPEG -> 2 IMAGETYPE_PNG -> 3 IMAGETYPE_SWF -> 4 IMAGETYPE_PSD -> 5 IMAGETYPE_BMP -> 6 IMAGETYPE_TIFF_II -> 7 IMAGETYPE_TIFF_MM -> 8 IMAGETYPE_JPEG2000 -> 9 IMAGETYPE_JP2 -> 10 IMAGETYPE_JPX -> 11 IMAGETYPE_JB2 -> 12 IMAGETYPE_SWC -> 13 IMAGETYPE_IFF -> 14 IMAGETYPE_WBMP -> 15 IMAGETYPE_XBM -> 16 IMAGETYPE_ICO -> 17 |
Por tanto, si queremos obtener el tamaño y el tipo de una imagen, tendremos que llamar a la función getimagesize y obtener las posiciones necesarias del array devuelto. Podemos hacerlo de la siguiente forma:
1 2 3 4 5 6 | /* Obtener las dimensiones y el tipo de una imagen en PHP */ $archivoImagen = dirname(__FILE__).'/imagen.jpg'; if ( file_exists ( $archivoImagen ) ) { list ( $ancho, $alto, $tipo ) = getimagesize ( $archivoImagen ); } |
De esta forma, en las variables $ancho, $alto y $tipo quedarán guardados los valores buscados.
Así es como puedes obtener el tamaño y el tipo de una imagen a través del lenguaje de programación PHP. Información que te puede resultar de utilidad a la hora de realizar modificaciones sobre la misma.
