Ir para conteúdo

Arquivado

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

  • 0
Danado_

Upload png [error] preto

Pergunta

Galera eu tenho o upload e o mesmo funciona perfeitamente JPG, porém preciso que funciona o PNG, quando coloco o código fica preto o que devo fazer?

o meu JPG está assim:

$thumb_destino = imagecreatetruecolor($width_end_thumb, $height_end_thumb);
$large_destino = imagecreatetruecolor($width_end_large, $height_end_large);
$imagem_fonte = imagecreatefromjpeg($destino.$nome);
imagecopyresampled($thumb_destino, $imagem_fonte, 0, 0, 0, 0, $width_end_thumb, $height_end_thumb, $width_init, $height_init);
imagecopyresampled($large_destino, $imagem_fonte, 0, 0, 0, 0, $width_end_large, $height_end_large, $width_init, $height_init);

como devo fazer o PNG com esses nomes?

 

agradecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

Seria assim, como está acima fica preto ao fazer o upload do PNG,

a pergunta correta seria: como eu gostaria de arrumar o código de PNG nessas condições acima.

 

por exemplo:

 

gostaria de pegar o código acima e fazer isso:

 

case 'jpeg':
    $img = imagecreatefromjpeg($tmp);
    $x = imagesx($img);
    $y = imagesy($img);
    $altura = ($largura * $y) / $x;

    $nova = imagecreatetruecolor($largura, $altura);
    imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
    imagejpeg($nova, "$pasta/$nome");
    imagedestroy($nova);
    imagedestroy($img);

    return($nome);
break;

case 'png':
    $img = imagecreatefrompng($tmp);
    $x = imagesx($img);
    $y = imagesy($img);
    $altura = ($largura * $y) / $x;

    $nova = imagecreatetruecolor($largura, $altura);
    imagealphablending($nova, true); //permite alpha blending na imagem de destino.
    $transparent = imagecolorallocatealpha( $nova, 0, 0, 0, 127 ); // Atribui uma cor transparente e preenche a nova imagem com ele.
    imagefill($nova, 0, 0, $transparent ); // Sem isso, a imagem terá um fundo preto em vez de ser transparente.
    imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
    imagealphablending($nova, false);
    imagesavealpha($nova,true); // salva o alfa
    imagepng($nova, "$pasta/$nome");
    imagedestroy($nova);
    imagedestroy($img);

    return($nome);
break;
Citar

 

 

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.