2013-04-29 137 views
0

我正在使用lib來保存圖像。PNG有黑色背景

http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

但問題是,它節省了與黑色的背景TRANSPARANT PNG。我有搜索,發現應該工作,但不適合我的東西。

imagecolortransparent()通常應該這樣做。 但對我來說,我仍然看到黑色的背景。

我做錯了什麼?

$imagename = $_FILES['file']['name'];   
$target = "source/images/".$imagename; 
$image->save($target); 


function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null){ 

    if($image_type == IMAGETYPE_PNG){ 

     $image = $this->image; 

     $black = imagecolorallocate($image, 0, 0, 0); 
     imagecolortransparent($image, $black); 

     imagepng($image,$filename); 
    } 

}

+0

爲Y ou使用PNG或JPG圖像? – HamZa 2013-04-29 12:21:52

+0

我正在使用PNG – Sharpless512 2013-04-29 12:22:45

+0

這令人困惑'$ image_type = IMAGETYPE_JPEG' – HamZa 2013-04-29 12:23:18

回答

1

你或許應該改變

$black = imagecolorallocate($im, 0, 0, 0); 

$black = imagecolorallocate($image, 0, 0, 0); 

嘗試設置圖像alpha混合

imagealphablending($image, false); 
imagesavealpha($image, true); 
+0

eddited,不會改變結果的難度 – Sharpless512 2013-04-29 12:19:39

+0

嘗試保存Alpha通道信息! – tlenss 2013-04-29 12:27:21

+0

同樣,我在colorallocate之前和之後添加了這兩行。沒有結果 – Sharpless512 2013-04-29 12:32:46