Java 在将映像从磁盘加载到BuffereImage时,如何忽略alpha内容

Java 在将映像从磁盘加载到BuffereImage时,如何忽略alpha内容,java,bufferedimage,Java,Bufferedimage,当前,当我从磁盘加载映像时 BufferedImage img = ImageIO.read(new File("myfile.png"); 生成的颜色空间是ARGB中的一个。我更喜欢的是一个普通的旧RGB,但不必自己过滤 有没有办法以特定的颜色模式打开图像 我不知道如何使用特定的颜色格式打开它,但您可以创建所需格式的新BuffereImage并将旧图像绘制到它上: BufferedImage img2 = new BufferedImage(img.getWidth(), img.getH

当前,当我从磁盘加载映像时

BufferedImage img = ImageIO.read(new File("myfile.png"); 
生成的颜色空间是ARGB中的一个。我更喜欢的是一个普通的旧RGB,但不必自己过滤


有没有办法以特定的颜色模式打开图像

我不知道如何使用特定的颜色格式打开它,但您可以创建所需格式的新BuffereImage并将旧图像绘制到它上:

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());

是的,请注意默认背景是黑色的+1@MadProgrammer谢谢编辑。