我有一个jpeg图片,我想用php GD创建2个盒子。
左框将删除背景并设置透明
右框将设置rgba - alpha 80%;
并将其保存在png transparance中
我试过了imagesetpixel,但它不透明,
我也尝试使用imagecolortransparent
$transparentcolour = imagecolorallocate($im, 40,220,1);
imagecolortransparent($image, $transparentcolour);
但这会使这一切变成透明的一切。
谁知道如何实现这个目标?答案 0 :(得分:1)
直透明很容易:
禁用Alpha混合
使用alpha分配颜色 - 我个人使用(255,0,255,127)
,因为洋红色是"标准"使用游戏精灵时的透明色,所以我只是坚持使用它
绘制矩形
结果将是一块透明度。
功能参考:imagealphablending
,imagecolorallocatealpha
,imagefilledrectangle
&#34>褪色80%"事情会变得更棘手。
禁用Alpha混合
对于矩形中的每个(x,y)
...(即两个嵌套的for
循环)
获取该像素的颜色(imagecolorat
和imagecolorsforindex
应该有帮助)
$color['alpha']
乘以0.2
获得80%的淡出效果
使用与源相同的RGB
分配新颜色,但使用新的A
值
绘制像素
结果将是一块80%的淡入淡出像素。
功能参考:imagealphablending
,imagecolorat
,imagecolorsforindex
,imagecolorallocatealpha
,imagesetpixel