首先介绍必须知道的三个函数:
imagealphablending
此函数,开启或关闭一个真彩色图像资源的混色模式。开启与关闭混合模式有什么区别呢?如果不涉及透明度的问题,两个模式没什么区别,但是如果是在一张画布上画一条透明颜色的线,不同的混合模式将出现不同的效果,如果混合模式开启,则透明线的颜色会与原背景中的颜色叠加,计算出新的颜色,显示出来,如果混合模式关闭,则透明线的颜色直接覆盖到画布中对应位置的颜色值。
简单来说,开启混合模式,颜色叠加,关闭混合模式,颜色覆盖。
imagecolorallocatealpha
类似于拾色器的功能,就是生成一个颜色, 的行为和 imagecolorallocate
imagesavealpha
设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息,如果你想保存一个透明的png图标,这个函数是必要的。
给个生成300×300完全透明PNG的例子,
1 | <?PHP |
2 | $block=imagecreatetruecolor(300,300);//建立一个画布 |
3 | $c=imagecolorallocatealpha($block , 0 , 0 , 0 ,127);//拾取一个完全透明的颜色 |
4 | imagealphablending($block ,false);//关闭混合模式,以便透明颜色能覆盖原画布 |
5 | imagefill($block , 0 , 0, $c);//填充 |
6 | imagesavealpha($block ,true);//设置保存PNG时保留透明通道信息 |
7 | imagepng($block ,'e.png');//生成图片 |
8 | ?> |
另一种建立透明PNG的方法 , 使用imagecolortransparent设置图片的透明色属性,也就是把图片上的某个颜色设置成透明色。
1 | <?PHP |
2 | $block= imagecreatetruecolor(300 ,300);//建立一个真彩色画布 |
3 | $white= imagecolorallocate($block , 255 , 255 ,255);//拾取白色 |
4 | imagefill($block , 0 , 0, $white);//把画布染成白色 |
5 | imagecolortransparent($block ,$white );//把图片中白色设置为透明色 |
6 | //imagesavealpha($block , false); |
7 | imagepng($block ,'e.png');//生成图片 |
8 | ?> |
感觉还是第一种方法安全可靠一些。
本文详细介绍了PHP图像处理中的三个关键函数:imagealphablending、imagecolorallocatealpha 和 imagesavealpha,解释了它们的作用及用法,并通过示例展示了如何创建完全透明的PNG图像。
454

被折叠的 条评论
为什么被折叠?



