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

ли у ou с использованием PNG или JPG-изображения? – HamZa

+0

Я использую png – Sharpless512

+0

Это путает '$ image_type = IMAGETYPE_JPEG' – HamZa

ответ

1

Вы, вероятно, следует изменить

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

в

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

Попробуйте установить изображение альфа смешивания

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

eddited, не меняет результат. – Sharpless512

+0

Попробуйте сохранить информацию о альфа-канале! – tlenss

+0

То же самое, я добавил эти 2 строки перед colorallocate и после. Нет результата – Sharpless512

Смежные вопросы