imagepng () и прозрачность в библиотеке GD с PHP - PullRequest
16 голосов
/ 10 ноября 2009

При использовании функции imagepng() в PHP, как я могу убедиться, что сохраненные мной изображения сохраняются на прозрачном фоне?

Ответы [ 4 ]

46 голосов
/ 10 ноября 2009

Просто сделайте это:

imagealphablending($img, false);
imagesavealpha($img, true);

Перед выводом. Убедитесь, что все исходные файлы (если вы их использовали) настроены на 32-битный формат PNG с прозрачностью - в противном случае выходные данные могут отличаться черным фоном или прозрачность не соответствует.

16 голосов
/ 30 августа 2013

Вот пример

     $newimage = imagecreatetruecolor($dst_w, $dst_h);
     imagealphablending($newimage, false);
     imagesavealpha($newimage, true);
     $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
     imagefill($newimage, 0, 0, $transparentindex);
10 голосов
/ 10 ноября 2009

Вот пример функции imagecolortransparent (если это помогает):

<?php
// Create a 55x30 image
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Make the background transparent
imagecolortransparent($im, $black);

// Draw a red rectangle
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Save the image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>
0 голосов
/ 10 ноября 2009

Есть функция с именем imagecolortransparent , которая позволяет вам установить, какой цвет будет прозрачным. Я не знаю, отвечает ли это на ваш вопрос.

...