2013-04-29 168 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