Como identificar o tipo de imagem usando a biblioteca GD do PHP



Neste tutorial vamos mostrar como identificar o tipo de uma imagem utilizando a biblioteca GD. Desta forma, podemos identificar qual a extensão de uma imagem em um sistema em PHP, usando o comando getimagesize(), que é uma função da biblioteca GD.

Obs.: A função getimagesize() retorna informações de uma imagem com as extensões: GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, ou WBMP.

Biblioteca GD: O GD é um poderoso plugin do PHP desenvolvido para o processamento de imagens. Esta biblioteca já vem inserida no PHP 5.0 ou superior. Veja todos os comandos no link: Biblioteca GD

Exemplo 1 - Identificar o tipo de imagem

1. Para identificarmos o tipo de uma imagem em um sistema PHP, vamos utilizar a função getimagesize() da biblioteca GD.

 1.1. getimagesize() é uma função da biblioteca GD que retorna uma variável composta (array) com 4 índices, sendo:

[0] Largura da imagem,

[1] Altura da imagem,

[2] Tipo do arquivo de imagem,

[3] atributos width e height da imagem.

2.  Como vimos acima, a função getimagesize() retorna um array com 4 índices, onde obtemos o tipo de imagem através do índice 2 (terceiro elemento).

3.  O índice 2 retorna a indicação do tipo de imagem, onde: 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.

Obs.: Caso o arquivo hospedado tenha uma extensão diferente das mencionadas acima o comando getimagezize retornará "null" para o índice 2.

4. Veja abaixo o nosso exemplo 1 onde podemos entender melhor os conceitos apresentados acima:

<h2>Identificador de Imagens</h2>
<form method="POST">
Insira o URL da imagem: <br>
<input type='url' size='50' name='imagem'><br><br>
<input type='submit' value="Enviar"><br>
</form>

<?php
if (isset($_POST['imagem']) && !empty($_POST['imagem'])) {
$imagem = addslashes($_POST['imagem']);

$extensao = array('gif', 'jpg', 'png', 'swf', 'psd', 'bmp', 'iff', 'tiff', 'jpc', 'jp2', 'jpx', 'jb2', 'swc', 'iff', 'wbmp', 'xbm');
    
$list = array();  
$list = getimagesize($imagem);
$tipo = $list[2];
    if ($tipo == null) {  
        echo "Este arquivo não é uma imagem. Envie outro!";
        exit;
    }

echo '<h3>Dados da imagem</h3>';
echo '<b>URL da imagem: </b>'.$imagem;
echo '<br><br>';
   
echo '<b>Tipo da imagem: </b>'.$extensao[$tipo-1];
echo '<br><br>';
}
?> 

😀 Para visualizar o nosso exemplo, acesse o link: visualdicas exemplo 04

 

Exemplo 2 - Mostrando todos os índices da função "getimagesize()"

1. Neste exemplo vamos mostrar elementos do "getimagesize()" obtidos a partir de um arquivo de imagem GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, ou WBMP, onde: [0] Largura da imagem, [1] Altura da imagem, [2] Tipo do arquivo de imagem, [3] atributos width e height da imagem.

1.1. O índice [0] contém a largura da imagem em pixels. 

1.2. O índice [1] contém a altura em pixels. 

1.3. 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. 

1.4. O índice 3 é uma string com o height="yyy" width="xxx" correto que pode ser usado diretamente numa tag IMG.

Veja abaixo o código do nosso exemplo:

<h2>Identificador de Imagens</h2>
<form method="POST">
Insira o URL da imagem: <br>
<input type='url' size='50' name='imagem'><br><br>
<input type='submit' value="Enviar"><br>
</form>

<?php
if (isset($_POST['imagem']) && !empty($_POST['imagem'])) {
$imagem = addslashes($_POST['imagem']);

$extensao = array('gif', 'jpg', 'png', 'swf', 'psd', 'bmp', 'iff', 'tiff', 'jpc', 'jp2', 'jpx', 'jb2', 'swc', 'iff', 'wbmp', 'xbm');

list($largura, $altura, $tipo, $atributo) = getimagesize($imagem);

 if ($tipo == null) {
 echo "Este arquivo não é uma imagem. Envie outro!";
 exit;
 }

echo '<h3>Dados da imagem</h3>';
echo '<b>URL da imagem: </b>'.$imagem;
echo '<br><br>';

echo '<b>Largura da imagem: </b>'.$largura;
echo '<br><br>';

echo '<b>Altura da imagem: </b>'.$altura;
echo '<br><br>';

echo '<b>Tipo da imagem: </b>'.$extensao[$tipo-1];
echo '<br><br>';

echo '<b>Tributos da imagem: </b>'.$atributo;
echo '<br><br>';

echo '<img src="'.$imagem.'" border="1" />';
}
?> 

😀 Para visualizar o nosso exemplo, acesse o link: visualdicas exemplo 05

Documentação Oficial

1. [Documentação PHP - função getimagesize()] » Sobre a função da GD "getimagesize()".

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO