Imagepng() и прозрачность в библиотеке GD с PHP

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

Ответы

Ответ 1

Вот пример 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);
?>

Ответ 2

Просто выполните следующее:

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

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

Ответ 3

Вот пример

     $newimage = imagecreatetruecolor($dst_w, $dst_h);
     imagealphablending($newimage, false);
     imagesavealpha($newimage, true);
     $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
     imagefill($newimage, 0, 0, $transparentindex);

Ответ 4

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