2010-04-03 32 views
15

Tôi đã thử một cái gì đó như thế này nhưng nó chỉ làm cho nền của hình ảnh trắng, không nhất thiết phải là alpha của hình ảnh. Tôi muốn tải lên tất cả mọi thứ như jpg vì vậy nếu tôi bằng cách nào đó có thể "flatten" một hình ảnh png với một số minh bạch để mặc định nó chỉ là màu trắng để tôi có thể sử dụng nó như là một jpg thay thế. Đánh giá cao bất kỳ trợ giúp nào. Cảm ơn.GD! Chuyển đổi hình ảnh png thành jpeg và làm cho alpha theo mặc định màu trắng và không phải màu đen

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

Trả lời

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 great man thanks a bunch! – Shawn

+0

+1, nó làm cho chất lượng đầu ra tốt hơn rất nhiều – dynamic

+0

thx rất nhiều, tiết kiệm cho tôi nhiều thời gian với một kết quả rất tốt – chings228

Các vấn đề liên quan