Olá pessoal! Fiz um script que exibe miniaturas de imagens em php. O problema é que o script não funciona quando a imagem é PNG. As JPGs são exibidas normalmente. Segue abaixo o script:
/img/thumb.php
<?php//GERANDO MINIATURAS DE IMAGENS//Cabeçalho que irá definir a saída da páginaheader('Content-type: image/jpeg'); //já testei "header('Content-type: image/png');" e também não funciona.//recebendo a url da imagem$url_imagem = addslashes($_GET['nome']);//obtendo as dimensoes reais da imagem, largura e alturalist($x,$y) = getimagesize($url_imagem);$dimensao_maior = max($x,$y);$percentual_reducao = 1-(50/$dimensao_maior);//setando as dimensões da miniatura$new_x = floor($x-$x*$percentual_reducao);$new_y = floor($y-$y*$percentual_reducao);//obtendo extensão da imagem$ext_img = strtolower(pathinfo($url_imagem,PATHINFO_EXTENSION));if ($ext_img == "jpeg") { $ext_img = "jpg";}//gerando a a miniatura da imagem$image_p = imagecreatetruecolor($new_x,$new_y);if ($ext_img == "jpg") { $image = imagecreatefromjpeg($url_imagem);}if ($ext_img == "png") { $image = imagecreatefrompng($url_imagem);}if ($ext_img == "gif") { $image = imagecreatefromgif($url_imagem);}imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_x, $new_y, $x, $y);//o 3º argumento é a qualidade da imagem de 0 a 100if ($ext_img == "jpg") { imagejpeg($image_p, null, 100);}if ($ext_img == "png") { imagepng($image_p, null, 100);}if ($ext_img == "gif") { imagegif($image_p, null, 100);}imagedestroy($image_p);?>
O arquivo acima (thumb.php) fica no mesmo diretório da imagens (/img);
A implementação fiz assim:
index.php
<div class="thumb"><a href="/img/nome-da-imagem.png"><img src="/img/thumb.php?nome=nome-da-imagem.png" border="0" /></a></div>
Gostaria de saber como faço para exibir miniaturas de imagens PNG. Se alguém puder me ajudar ficarei muito grato.