怎样使用Alpha通道使png图片透明

 我来答
糖糖寳寳
2015-09-08 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3861万
展开全部

常用的方式有:

1、CSS里添加filter(手工添加很麻烦)

2、用gif来代替(有瑕疵)

3、使用vml(JS来实现,并且动态操作DOM时可能也要调用)

如果使用程序来自动添加_filter和_background的话,就要做到如何去识别当前引用的图片是否含有alpha的透明。

知道了png图片的数据格式以后,可以通过depth和colorType来判断图片是否含有alpha通道的透明。

具体代码如下:

**
 * 
 * 判断一个图片是否是包含alpha通道的png
 * @param string $file
 */function is_alpha_png($file) {
    if (! file_exists ( $file )) {
        return false;
    }
    $f = @fopen ( $file, 'r' );
    if (! $f) {
        return false;
    }
    $bin = fread ( $f, 29 );
    fclose ( $f );
    $info = @unpack ( "C8c/C8char/C4width/C4height/Cdepth/Ccolortype", $bin );
    $png = array (
        137, 
        80, 
        78, 
        71, 
        13, 
        10, 
        26, 
        10 
    );
    //判断头是否是png文件
    for($i = 0; $i < 8; $i ++) {
        if ($png [$i] != $info ['c' . ($i + 1)]) {
            return false;
        }
    }
    list ( $width, $height ) = getimagesize ( $file );
    //这里用width3和4就可以了
    $w = $info ['width3'] * 256 + $info ['width4'];
    $h = $info ['height3'] * 256 + $info ['height4'];
    //判断当前获取跟系统获取的值是否相同
    if ($width != $w || $height != $h) {
        return false;
    }
    $depth = $info ['depth'];
    $colorType = $info ['colortype'];
    if ($depth == 8 || $depth == 16) {
        if ($colorType == 6) {
            return true;
        }
    }
    return false;
}
dtc030
2011-05-31 · TA获得超过150个赞
知道小有建树答主
回答量:220
采纳率:100%
帮助的人:147万
展开全部
alpha通道是一个 0-255 之间的数值,0表示完全透明,255标识不透明,如果你想要对图片中某部分透明化,那么只要对该区域的像素设置alpha通道为0就可以,当然如果alpha数值是0-255之间的数值也可以,那么就是半透明效果了
追问
怎么样对那该区域的像素设置alpha通道为0,请指教。最好是把具体步骤写出来,拜谢了
追答
我只会从编程角度改变,但很少研究其他工具软件,但我估计是有这样的工具,可以帮助你的,你可以百度一下png图片处理软件看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ameng068
2011-06-03 · TA获得超过115个赞
知道答主
回答量:63
采纳率:0%
帮助的人:60.6万
展开全部
你是不是有alpha通道然后存储为png后变为白色,不是透明?如果是这个问题的话可以存储为网络用的格式,里面选择png,这样就是透明的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuang_no1
2011-06-02 · TA获得超过2756个赞
知道小有建树答主
回答量:711
采纳率:0%
帮助的人:339万
展开全部
不知你是要在什么领域应用。如果是开发自动生成图片的脚本的话,就如楼上所说,设定相应对象的ALPHA值就可以了;如果是手动处理图片,则在PHOTOSHOP中,先不用管如何保存图片,直接按照自己的意图设定图层的透明度,当处理完图片后,不要直接保存,而是使用“文件 - 保存成WEB格式”来保存,然后文件格式选择“PNG-24”就可以了,PNG-8是不支持透明通道的。

另外,带透明通道的PNG图片需要比较新版本的软件才能有透明效果,一些老的看图软件和具备图片显示功能的软件不一定支持,比如IE6,对于PNG中透明部分也会显示一个底色。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjywchenhui
2020-11-18
知道答主
回答量:19
采纳率:0%
帮助的人:6.6万
展开全部
搜索软件,vtfeditor。
导入tga再导出png。就透明了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式