A função getimagesize() irá determinar o tamanho de qualquer arquivo de imagem GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, ou WBMP e retornar as dimensões juntamente com o tipo de arquivo e a altura/largura para usar dentro de uma tag HTML IMG.
Nota: Suporte para JPC, JP2, JPX, JB2, XBM, e WBMP tornou-se disponível no PHP 4.3.2. Supporte para SWC a partir do PHP 4.3.0.
Retorna uma matriz com 4 elementos. O índice 0 contém a largura da imagem em pixels. O índice 1 contém a altura. O índice 2 é uma indicação do tipo de imagem: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. Estes valores correspondem as constantes IMAGETYPE que foram adicionadas no PHP 4.3. O índice 3 é uma string com o height="yyy" width="xxx" correto que pode ser usado diretamente numa tag IMG.
Com imagens JPG dois indices extras são retornados: channels e bits. channels será 3 para imagens RGB e 4 para imagens CMYK. bits é o número de bits para cada cor.
Começando no PHP 4.3, bits e channels estão presentes para outros tipos de imagens também. Entretanto, a presença desses valores pode ser um pouco confusa. Por exemplo, GIF sempre usa 3 channels por pixel, mas o número de bits por pixel não pode ser calculado para um GIF animado com uma tabela de cores global.
Alguns formatos podem não conter imagens ou conter múltiplas imagens. Nestes casos, getimagesize() não será capaz de determinar o tamanho da imagem. getimagesize() retornará zero para a altura e largura nestes casos.
Começando no PHP 4.3, getimagesize() também retorna um parâmetro adicional, mime, que corresponde ao tipo MIME da imagem. Esta informação pode ser usada para enviar imagens com o cabeçalho HTTP Content-type correto:
Se for impossível acessar a imagem filename, ou não for uma imagem válida, getimagesize() irá retornar FALSE e gerar um warning.
O parâmetro opcional imageinfo permite a você extrair alguma informação extendida do arquivo de imagem. Atualmente, irá retornar os diferentes JPG APP markers como uma matriz associativa. Alguns programas usam estes APP markers para embutir textos com informações na imagem. Um uso muito comum é embutir informação IPTC http://www.iptc.org/ no APP13 marker. Você poderá usar a função iptcparse() para interpretar o binário APP13 marker em algo legível.
Nota: Suporte a JPEG 2000 foi adicionado no PHP 4.3.2. Note que JPC e JP2 podem ter componentes com uma quantidade diferente de bits. Neste caso o valor para "bits" é o maior encontrado. Também, um arquivo JP2 pode ter múltiplos JPEG 2000 codestreams. Neste caso, getimagesize() retorna os valores para o primeiro codestream que encontrar na raíz do arquivo.
Nota: Suporte a TIFF foi adicionado no PHP 4.2.
Esta função não requer a biblioteca de imagens GD.
Veja também image_type_to_mime_type(), exif_imagetype(), exif_read_data() e exif_thumbnail().
Suporte a URL foi adicionado no PHP 4.0.5.