Ir ao conteúdo
  • Cadastre-se

Problema ao tentar exibir miniatura de imagem PNG com PHP


Ir à solução Resolvido por Rique,

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Achei esse código que converte para JPG. Talvez isso dê alguma luz.

<?php$imagem_entrada = 'foto.gif'$imagem_saida='foto.png'$img = imagecreatefrompng($imagem_entrada);$w = imagesx($img);$h = imagesy($img);$trans = imagecolortransparent($img);if($trans >= 0) {$rgb = imagecolorsforindex($img, $trans);$oldimg = $img;$img = imagecreatetruecolor($w,$h);$color = imagecolorallocate($img,$rgb['red'],$rgb['green'],$rgb['blue']);imagefilledrectangle($img,0,0,$w,$h,$color);imagecopy($img,$oldimg,0,0,0,0,$w,$h);}imagejpeg($img,$imagem_saida);?>

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...