php GD 创建透明png图片

标签 php image transparency gd

我正在尝试创建一个透明的 png 图像并将各种其他 png 和 jpg 分层以创建具有透明度的最终 png。我在创建初始空透明 png 时遇到问题。它目前具有白色背景。

谁能指出我正确的方向。到目前为止,这是我的代码...

$image = imagecreatetruecolor(485, 500);
imagealphablending($image, false);
imagesavealpha($image, true);
$col=imagecolorallocatealpha($image,255,255,255,127);
imagefill($image, 0, 0, $col);
//imagefilledrectangle($image,0,0,485, 500,$col);


/* add door glass */
$img_doorGlass = imagecreatefrompng("glass/$doorStyle/$doorGlass.png");     
imagecopyresampled($image, $img_doorGlass, 106, 15, 0, 0, 185, 450, 185, 450);              


/* add door */
$img_doorStyle = imagecreatefrompng("door/$doorStyle/$doorStyle"."_"."$doorColor.png");     
imagecopyresampled($image, $img_doorStyle, 106, 15, 0, 0, 185, 450, 185, 450);


$fn = md5(microtime()."door_builder").".png";

if(imagepng($image, "user_doors/$fn", 1)){
  echo "user_doors/$fn";
}       
imagedestroy($image);       

最佳答案

在每个新层上设置 imagealphablending($image,true);

试试这个:

<?php
$image = imagecreatetruecolor(485, 500);
imagealphablending($image, false);
$col=imagecolorallocatealpha($image,255,255,255,127);
imagefilledrectangle($image,0,0,485, 500,$col);
imagealphablending($image,true);

/* add door glass */
$img_doorGlass = imagecreatefrompng("glass/$doorStyle/$doorGlass.png");
imagecopyresampled($image, $img_doorGlass, 106, 15, 0, 0, 185, 450, 185, 450);
imagealphablending($image,true);

/* add door */
$img_doorStyle = imagecreatefrompng("door/$doorStyle/$doorStyle"."_"."$doorColor.png");
imagecopyresampled($image, $img_doorStyle, 106, 15, 0, 0, 185, 450, 185, 450);
imagealphablending($image,true);

$fn = md5(microtime()."door_builder").".png";

imagealphablending($image,false);
imagesavealpha($image,true);
if(imagepng($image, "user_doors/$fn", 1)){
    echo "user_doors/$fn";
}
imagedestroy($image);

?>

关于php GD 创建透明png图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109832/

相关文章:

php - MYSQL SELECT 从带有或不带有外键的两个表中获取行

Javascript:ForEach循环通过此方法访问json标签的正确方法

html - 图像无法在导航栏上正确显示

html - 图片元素没有选择它应该的文件

C# Winforms 透明控件允许点击

php - 同时 PHP 数据库查询

javascript - 从 JavaScript 调用 PHP JSON 数据结果

python - 如何在Python中随机化图像像素

java - JLabel 覆盖透明绘制的矩形?

android - 如何使按钮不透明?