php gd透明色,PHP&GD – 透明背景充满了附近的颜色

请注意,在newImage中创建句柄并在其上调用imagealphablending和imagesavealpha并不重要,因为loadImage会抛出该句柄.

它用蓝色“填充”透明区域的原因是它没有任何东西填充透明区域.它只是完全丢弃了alpha通道,而蓝色则恰好存储在那些alpha为零的像素中.请注意,这可能很难在图形程序中看到,因为该程序本身可以用黑色或白色替换完全透明的像素.

至于你的代码有什么问题,我不能肯定地说,因为当我尝试你现有的代码时,我没有得到与你报告的相同的结果.但是,如果我将loadImage更改为类似的东西,那么源图像将被强制为真彩色,它对我有用:

private function loadImage()

{

$img = null;

switch( $this->type )

{

case 1:

$img = imagecreatefromgif($this->source);

break;

case 2:

$img = imagecreatefromjpeg($this->source);

break;

case 3:

$img = imagecreatefrompng($this->source);

break;

default:

break;

}

if (!$img) return false;

$this->handle = imagecreatetruecolor($this->width, $this->height);

imagealphablending($this->handle, false);

imagesavealpha($this->handle, true);

imagecopyresampled($this->handle, $img, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height);

return true;

}

(就个人而言,我更喜欢ImageMagick而不是GD).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值