如何去掉PNG的Alpha通道

                为PNG去除Alpha通道的方法很多,设计师可以使用PS或Fireworks。
为什么要为PNG图形去除Alpha通道,一张图片通常由RGBa4个标识位构成,称为32bit图片。而目前大多数移动设备上,用Flash创作应用,无法很有效的支持Alpha通道,图片都是24bit的。所以,将PNG用于移动应用开发,先要去除Alpha通道,以此做到第一步优化。

这里的简单方法:
1.下载Pngcrush工具,地址 http://pmt.sourceforge.net/pngcrush

2.使用以下命令行:pngcrush -cc originalwithalpha.png newwithoutalpha.png


http://www.7yue.com/post/461.html


这篇话外音要多说一句,如果你的应用是用Flex框架构造,那么绝对不要使用SWFLoader去读取一个具有Stage3D的SWF文件。具体原因是:
Stage3D API是Flash Player 11底层编程接口,所有Stage3D的对象都不属于DisplayObject。
而SWFLoader则位于mx.controls包内,它继承自DisplayObjectContainer类。
所以在一个SWFLoader里加载一个Stage3D的SWF,你将永远无法看到正确的结果。
           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,可以使用ImageIO类读取图片,并利用BufferedImage类进行处理。如果要去除图片的alpha通道,可以使用BufferedImage的getRGB()方法和setRGB()方法。具体步骤如下: 1. 使用ImageIO类读取图片 ```java BufferedImage image = ImageIO.read(new File("image.png")); ``` 2. 创建一个新的BufferedImage对象,宽高与原图一致,颜色模型为RGB ```java BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); ``` 3. 遍历原图的每一个像素,获取RGB值并设置到新图中 ```java for (int y = 0; y < image.getHeight(); y++) { for (int x = 0; x < image.getWidth(); x++) { int color = image.getRGB(x, y); // 去除alpha通道 int rgb = color & 0x00FFFFFF; newImage.setRGB(x, y, rgb); } } ``` 4. 将处理后的图片保存 ```java ImageIO.write(newImage, "png", new File("new_image.png")); ``` 完整代码如下: ```java import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class RemoveAlpha { public static void main(String[] args) throws Exception { BufferedImage image = ImageIO.read(new File("image.png")); BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); for (int y = 0; y < image.getHeight(); y++) { for (int x = 0; x < image.getWidth(); x++) { int color = image.getRGB(x, y); // 去除alpha通道 int rgb = color & 0x00FFFFFF; newImage.setRGB(x, y, rgb); } } ImageIO.write(newImage, "png", new File("new_image.png")); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值