Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alh

Upload de imagem (PNG) fundo fica preto

Recommended Posts

Ola a todos..

 

Estou com um probleminha ao fazer upload de fotos no formato PNG, o fundo do png fica preto ao invés de transparente como no arquivo original apos redimensionar...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante

Calma, estou resolvendo o seu problema mentalmente...

(Script que é bom nada)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente ele esteja sendo renderizado em JPG. Tente renderizar a imagem modificada em PNG, ou adicione cor ao fundo (geralmente, se for uma biblioteca pronta como Intervention, existe esta opção).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.. segue o código que usei no Upload

$dir         = "./logo/";   //caminho imagens normais$temp        = substr(md5(uniqid(time())), 0, 20);$nome        = isset($_FILES['arquivo']['name']) ? $_FILES['arquivo']['name']:'';$tamanho     = isset($_FILES['arquivo']['size']) ? $_FILES['arquivo']['size']:'';$tipo        = isset($_FILES['arquivo']['type']) ? $_FILES['arquivo']['type']:'';$tmpname     = isset($_FILES['arquivo']['tmp_name']) ? $_FILES['arquivo']['tmp_name']:'';$matriz[]    = $nome;//$caminho     = $dir.$temp.$nome;$tipo_arquivo = substr($nome,-3);$caminho     = $dir.$temp.'.'.$tipo_arquivo;if($tamanho > 0 && strlen($nome) > 1)	{$tiposPermitidos = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');if (in_array($tipo, $tiposPermitidos)){// endereco completo e o caminho para onde vao as imagensif(move_uploaded_file($tmpname,$caminho)){// ****$ttt = list($largura2,$altura2,$tipo2)=getimagesize($caminho);$largura_original = $ttt[0];$altura_original = $ttt[1];//if ( $largura_original > 640 and $altura_original > 480) { // no redimensionar as menoresif ($tipo2 == 1) {$imagem_nova = imagecreatefromgif($caminho);}if ($tipo2 == 2) {$imagem_nova = imagecreatefromjpeg($caminho);}if ($tipo2 == 3) {$imagem_nova = imagecreatefrompng($caminho);}//$imagem_nova = imagecreatefromjpeg($caminho);// redimensiona grandes$larguramaximag   = 200;$alturamaximag    = 100;$reducaoLargurag  = 100;$reducaoAlturag   = 100;$reducaoFinalg    = 100;////--------------------------------------------------------------------------if($largura_original <= $larguramaximag and  $altura_original <= $alturamaximag)                     {                   //  echo "(Sim reduzir a imagem)$largura_original X $altura_original";                      $Thumbnail2 = imagecreatetruecolor($largura_original,$altura_original);imagecopyresampled($Thumbnail2, $imagem_nova, 0, 0, 0, 0, $largura_original, $altura_original, $largura2,$altura2);imagejpeg($Thumbnail2,$caminho);                     } else{                       // echo "(Nao reduzir a imagem)$largura_original X $altura_original";    if ($largura_original > $larguramaximag  or $altura_original > $alturamaximag)  {    //*** largura ***    if ($largura_original > $larguramaximag){        $reducaoLargurag = $larguramaximag * 100 / $largura_original; //(vai resultar 20)    }    //*** altura ***    if ($altura_original > $alturamaximag){        $reducaoAlturag = $alturamaximag * 100 /$altura_original;// (vai resultar 10)    }   //agora vamos ver qual  a reducao final   if ($reducaoLargurag < $reducaoAlturag)     {        $reducaofinalg = $reducaoLargurag;    } else if ($reducaoAlturag < $reducaoLargurag) {        $reducaofinalg = $reducaoAlturag;    } else if ($reducaoAlturag == $reducaoLargurag)  { //entao os valores sao iguais        $reducaofinalg = $reducaoAlturag; //poderia ser reducaofinal = reducaolargura    }}//agora  gerar a imagem final reduzida   if ($reducaofinalg < 100)  {    $imagemnova_largurag = $largura_original * $reducaofinalg/100;    $imagemnova_alturag = $altura_original * $reducaofinalg/100;} else {    $imagemnova_largurag = $largura_original;    $imagemnova_alturag =$altura_original;}//echo "FINAL: $imagemnova_largurag - $imagemnova_alturag";$Thumbnail2 = imagecreatetruecolor($imagemnova_largurag,$imagemnova_alturag);imagecopyresampled($Thumbnail2, $imagem_nova, 0, 0, 0, 0, $imagemnova_largurag, $imagemnova_alturag, $largura2,$altura2);imagejpeg($Thumbnail2,$caminho);//--------------------------------------------------------------------------                        }                 }}    else    {    echo "<br><br><br> <div align='center'>Este tipo de Arquivo é valido!    <br/>    Tipos aceitos: jpg, jpeg, gif e png.    </div>";    }  }  

Alguem sabe o que pode estar acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.