将磁盘映像加载到BufferedImage时,如何忽略alpha内容

时间:2014-07-29 01:48:52

标签: java bufferedimage

目前,当我从磁盘加载图像时,

BufferedImage img = ImageIO.read(new File("myfile.png"); 

生成的色彩空间是ARGB之一。我更喜欢的是一个普通的旧RGB,但不需要自己进行过滤。

有没有办法在某种颜色模式下打开图像?

1 个答案:

答案 0 :(得分:2)

我不知道用特定颜色格式打开它的方法,但你可以创建一个所需格式的新BufferedImage并将旧图像绘制到它上面:

BufferedImage img2 = new BufferedImage(img.getWidth(), img.getHeight(),
    BufferedImage.TYPE_INT_RGB);
Graphics2D g = img2.createGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();

原始图像中的任何透明部分都将在新图像中的黑色背景上绘制。如果您更喜欢不同的背景,可以在drawImage电话前插入这些行:

g.setColor(Color.white); // or whichever
g.fillRect(0, 0, img.getWidth(), img.getHeight());