2010-04-03 31 views
15

Intenté algo así, pero solo hace que el fondo de la imagen sea blanco, no necesariamente el alfa de la imagen. Quería simplemente cargar todo como jpg, así que si de alguna manera podía "aplanar" una imagen png con transparencia, para que fuera simplemente blanco, así puedo usarla como jpg. Aprecia cualquier ayuda. Gracias.GD! Convirtiendo una imagen png a jpeg y haciendo que el alfa sea blanco por defecto y no negro

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

Respuesta

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 gran hombre gracias un montón! – Shawn

+0

+1, hizo que la calidad de salida fuera mucho más buena – dynamic

+0

thx mucho, ahorrándome muchas veces con un muy buen resultado – chings228

Cuestiones relacionadas