2010-04-03 7 views
15

J'ai essayé quelque chose comme ça, mais il est tout simplement l'arrière-plan de l'image blanche, pas nécessairement l'alpha de l'image. Je voulais simplement télécharger tout comme jpg donc si je pouvais en quelque sorte « aplatir » une image .png avec une certaine transparence à elle par défaut juste être blanc je peux l'utiliser comme un jpg à la place. Appréciez toute aide. Merci.GD! La conversion d'une image png en jpeg et en faisant l'alpha par défaut blanc et non noir

$old = imagecreatefrompng($upload); 
$background = imagecolorallocate($old,255,255,255); 
imagefill($old, 0, 0, $background); 
imagealphablending($old, false); 
imagesavealpha($old, true);

Répondre

50
<?php 
$input_file = "test.png"; 
$output_file = "test.jpg"; 

$input = imagecreatefrompng($input_file); 
list($width, $height) = getimagesize($input_file); 
$output = imagecreatetruecolor($width, $height); 
$white = imagecolorallocate($output, 255, 255, 255); 
imagefilledrectangle($output, 0, 0, $width, $height, $white); 
imagecopy($output, $input, 0, 0, 0, 0, $width, $height); 
imagejpeg($output, $output_file); 
+1

wow grand homme! Remercie un groupe – Shawn

+0

+1, il fait la qualité de sortie beaucoup plus bonne – dynamic

+0

thx beaucoup, sauve-moi beaucoup de temps avec un très bon résultat – chings228