在许多实际运用中,我们常常需要将一张照片(图片)装换成半透明后再显示或保存。下面我们就来看看如何使用Java来生成,转换一张照片到半透明。
1.基本思路
1.打开一张图片
BufferedImage imageOpen = ImageIO.read(new File("图像路径"));
2.获取图像每一个点的颜色值
int rgb = imageOpen.getRGB(x, y);
3.为每一个颜色值加上一个alpha值(控制透明度的值)
int rgb = imageOpen.getRGB(x, y);
Color color = new Color(rgb); Color color = new Color(color.getRed(), color.getGreen(),color.getBlue(), alpha);
4.在一张空白的图像上涂上每一个颜色值
BufferedImage imageSave = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);
....
imageSave.setRGB(x, y, color.getRGB());
5.保存涂上颜色的图像
ImageIO.write(imageSave, "PNG", new File("保存到的文件的路径"));
2.实现代码
以下是实现一个简单的半透明图片的Java代码(相应的Java源码,在我百度网盘夜也有:http://pan.baidu.com/s/1ntFiAwx)
测试效果对比:
1.原图:
2.生成的半透明图:
3.注意事项
1.在创建一张空白图像时.BufferedImage构建函数中第3个参数是创建的图像的颜色模式.因为我们生成的图像是有半透明的,所以这个参数就必须是支持ARGB颜色模式的类型,否则将无法正常生成半透明图像
所以本例中使用了BufferedImage.TYPE_INT_ARGB类型
2.保存图像时,ImageIO.write()方法的第2个参数应该用"PNG",而不应该使用"JPG",因为PNG文件格式是支持Alpha的,而JPG不支持,这样才能保证生成的图像有半透明效果
The End
@航行刘 2014/05/25