getimagesize
(PHP 4, PHP 5, PHP 7, PHP 8)
getimagesize — Obtém o tamanho de uma imagem
Descrição
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
.
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
- image_type_to_mime_type() - Obtém o Mime-Type para o tipo de imagem retornado por getimagesize, exif_read_data, exif_thumbnail e exif_imagetype
- exif_imagetype() - Verifica o tipo de uma imagem
- exif_read_data() - Lê os cabeçalhos EXIF de um arquivo de imagen
- exif_thumbnail() - Recupera a miniatura embutida de uma imagem
- imagesx() - Obtém a largura da imagem
- imagesy() - Obtém a altura da imagem