BufferedImage设置透明度
时间: 2024-01-28 22:11:42 浏览: 183
BufferedImage设置透明度可以通过改变图片中每个像素点的alpha值来实现。可以使用Java中的Color类来获取原始像素点的RGB值,并使用新的alpha值创建一个新的Color对象,然后将其设置为新的像素点的颜色。最后将修改后的像素点重新设置到新的BufferedImage对象中。下面是一个设置透明度的示例代码:
```
public static BufferedImage img_alpha(BufferedImage imgsrc,int alpha) {
try {
//创建一个包含透明度的图片,半透明效果必须要存储为png合适才行,存储为jpg,底色为黑色
BufferedImage back=new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(), BufferedImage.TYPE_INT_ARGB);
int width = imgsrc.getWidth();
int height = imgsrc.getHeight();
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {
int rgb = imgsrc.getRGB(i, j);
Color color = new Color(rgb);
Color newcolor = new Color(color.getRed(), color.getGreen(),color.getBlue(), alpha);
back.setRGB(i,j,newcolor.getRGB());
}
}
return back;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
```
其中,imgsrc为原始的BufferedImage对象,alpha为设置的透明度值。可以通过调用该方法来设置透明度,例如:
```
BufferedImage bi=file2img("test.jpg"); //读取图片
BufferedImage bii=img_alpha(bi,150); //设置透明度为150
img2file(bii,"PNG","test1.png"); //将修改后的图片保存为PNG格式
```
阅读全文