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, которая позволяет вам установить, какой цвет стал прозрачным. Я не знаю, отвечает ли это на ваш вопрос.