php 处理透明png

本文详细介绍了PHP图像处理中的三个关键函数:imagealphablending、imagecolorallocatealpha 和 imagesavealpha,解释了它们的作用及用法,并通过示例展示了如何创建完全透明的PNG图像。
  

首先介绍必须知道的三个函数:

 

imagealphablending

此函数,开启或关闭一个真彩色图像资源的混色模式。开启与关闭混合模式有什么区别呢?如果不涉及透明度的问题,两个模式没什么区别,但是如果是在一张画布上画一条透明颜色的线,不同的混合模式将出现不同的效果,如果混合模式开启,则透明线的颜色会与原背景中的颜色叠加,计算出新的颜色,显示出来,如果混合模式关闭,则透明线的颜色直接覆盖到画布中对应位置的颜色值。

 

简单来说,开启混合模式,颜色叠加,关闭混合模式,颜色覆盖。

imagecolorallocatealpha 

 

类似于拾色器的功能,就是生成一个颜色, 的行为和 imagecolorallocate 相同,但多了一个额外的透明度参数 alpha,其值从 0 到 127。0 表示完全不透明,127 表示完全透明。

imagesavealpha

 

设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息,如果你想保存一个透明的png图标,这个函数是必要的。

 

给个生成300×300完全透明PNG的例子,

 

 

1<?PHP
2$block=imagecreatetruecolor(300,300);//建立一个画布
3$c=imagecolorallocatealpha($block , 0 , 0 , 0 ,127);//拾取一个完全透明的颜色
4imagealphablending($block ,false);//关闭混合模式,以便透明颜色能覆盖原画布
5imagefill($block , 0 , 0, $c);//填充
6imagesavealpha($block ,true);//设置保存PNG时保留透明通道信息
7imagepng($block ,'e.png');//生成图片
8?>

 

另一种建立透明PNG的方法 , 使用imagecolortransparent设置图片的透明色属性,也就是把图片上的某个颜色设置成透明色。

 

1<?PHP
2$block= imagecreatetruecolor(300 ,300);//建立一个真彩色画布
3$white= imagecolorallocate($block , 255 , 255 ,255);//拾取白色
4imagefill($block , 0 , 0, $white);//把画布染成白色
5imagecolortransparent($block ,$white );//把图片中白色设置为透明色
6//imagesavealpha($block , false);
7imagepng($block ,'e.png');//生成图片
8?>

感觉还是第一种方法安全可靠一些。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值