2010-04-03 11 views
15

Ich habe so etwas versucht, aber es macht nur den Hintergrund des Bildes weiß, nicht unbedingt das Alpha des Bildes. Ich wollte einfach alles als JPGs hochladen, wenn ich ein PNG-Bild irgendwie mit etwas Transparenz "flatten" könnte, um es standardmäßig weiß zu sein, so kann ich es stattdessen als JPG verwenden. Schätze jede Hilfe. Vielen Dank.GD! Ein PNG-Bild in JPEG konvertieren und das Alpha standardmäßig weiß und nicht schwarz machen

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

Antwort

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 großer Mann dank einem Bündel! – Shawn

+0

+1, es machte die Ausgabequalität viel mehr gut – dynamic

+0

thx viel, rette mich viele Zeit mit einem sehr guten Ergebnis – chings228

Verwandte Themen