getimagesize

(PHP 4, PHP 5, PHP 7, PHP 8)

getimagesizeObtém o tamanho de uma imagem

Descrição

getimagesize(string $filename, array &$image_info = null): array|false

A função getimagesize() irá determinar o tamanho de qualquer arquivo de imagem suportado fornecido e retornar as dimensões, juntamente com o tipo de arquivo e uma string de texto height/width a ser usada dentro de uma tagHTMLIMG normal, juntamente com o tipo de conteúdo HTTP correspondente.

getimagesize() também pode retornar mais informações no parâmetro image_info.

Caution

Essa função espera que filename seja um arquivo de imagem válido. Se um arquivo que não seja uma imagem for fornecido, ele pode ser incorretamente detectado como uma imagem, e a função será bem-sucedida, mas o array pode conter valores sem sentido.

Não utilize a função getimagesize() para verificar se um determinado arquivo é uma imagem válida. Em vez disso, utilize uma solução específica para essa finalidade, como a extensão Fileinfo.

Note: Observe que os formatos JPC e JP2 podem ter componentes com diferentes profundidades de bits. Nesse caso, o valor "bits" representa a maior profundidade de bits encontrada. Além disso, arquivos JP2 podem conter multiple JPEG 2000 codestreams. Nesse caso, a função getimagesize() retorna os valores do primeiro codestream que encontra na raiz do arquivo.

Note: As informações sobre ícones são obtidas a partir do ícone com a maior taxa de bits.

Note: As imagens GIF consistem em um ou mais frames, em que cada frame pode ocupar apenas uma parte da imagem. O tamanho da imagem relatado pela função getimagesize() é o tamanho geral (lido do descritor da tela lógica).

Parâmetros

filename

Este parâmetro especifica o arquivo do qual você deseja obter informações. Ele pode fazer referência a um arquivo local ou (se a configuração permitir) a um arquivo remoto usando um dos streams suportados.

image_info

Este parâmetro opcional permite extrair informações estendidas do arquivo de imagem. Atualmente, isso retornará os diferentes marcadores APP JPG como um array associativo. Alguns programas usam esses marcadores APP para incorporar informações de texto em imagens. Um dos usos comuns é incorporar informações » IPTC no marcador APP13. Você pode usar a função iptcparse() para analisar o marcador binário APP13 em algo legível.

Note:

O parâmetro image_info suporta apenas arquivos no formato JFIF.

Valor Retornado

Retorna um array com até 7 elementos. Nem todos os tipos de imagem incluirão os elementos channels e bits.

O índice 0 e 1 contém, respectivamente, a largura e a altura da imagem.

Note:

Alguns formatos podem não conter nenhuma imagem ou podem conter várias imagens. Nesses casos, a função getimagesize() pode não ser capaz de determinar corretamente o tamanho da imagem. A função getimagesize() retornará zero para largura e altura nesses casos.

O índice 2 é uma das constantes IMAGETYPE_*, que indica o tipo da imagem.

O índice 3 é uma sequência de texto com a string correta height="yyy" width="xxx" que pode ser usada diretamente em uma tag IMG.

mime é o tipo MIME correspondente da imagem. Essa informação pode ser usada para fornecer imagens com o cabeçalho Content-type HTTP correto:

Example #1 getimagesize() e tipos MIME.

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // erro
}
?>

channels Será 3 para imagens RGB e 4 para imagens CMYK.

bits é o número de bits para cada cor.

Para alguns tipos de imagem, a presença dos valores de channels e bits pode ser um pouco confusa. Por exemplo, o formato GIF sempre utiliza 3 canais 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.

Em caso de falha, é retornado false.

Erros/Exceções

Se for impossível acessar a imagem do filename, a função getimagesize() gerará um erro de nível E_WARNING. Em caso de erro de leitura, getimagesize() gerará um erro de nível E_NOTICE.

Registro de Alterações

Versão Descrição
8.2.0 Agora, a função retorna as dimensões reais da imagem, bits e canais de imagens AVIF; anteriormente, as dimensões eram relatadas como 0x0, e bits e channels não eram relatados de forma alguma.
7.1.0 Foi adicionado suporte para WebP.

Exemplos

Example #2 getimagesize()exemplo

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

Example #3 getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// se o nome do arquivo contiver espaços, ele será codificado adequadamente.
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Example #4 getimagesize() retornando IPTC.

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Notas

Note:

Esta função não requer a biblioteca de imagens GD.

Veja Também