java 8 jpeg转换bug?

时间:2014-09-14 08:10:17

标签: java java-8 bufferedimage image-conversion

有关stackoverflow和此示例的以下主题:http://www.mkyong.com/java/convert-png-to-jpeg-image-file-in-java/

代码是:

public static void main(String[] args) throws IOException {
    File file = new File("./1.jpg");
    //  File file = new File("./1.png");
    File out = new File("./2.jpg");

    BufferedImage image = ImageIO.read(file);

    BufferedImage newBufferedImage = new BufferedImage(image.getWidth(),
            image.getHeight(), BufferedImage.TYPE_INT_RGB);

    Graphics2D g2 = newBufferedImage.createGraphics();
    g2.drawImage(newBufferedImage, 0, 0, Color.WHITE, null);
    g2.dispose();

    ImageIO.write(newBufferedImage, "jpg", out);
}

执行此代码使用java 8创建黑色jped图片。 此代码适用于java 7

java 8中的错误或更改API?

1 个答案:

答案 0 :(得分:2)

看起来这一行是问题所在:

g2.drawImage(newBufferedImage, 0, 0, Color.WHITE, null);

我认为您正在寻找:

g2.drawImage(image, 0, 0, Color.WHITE, null);

原始行正在将新创建的BufferedImage绘制到自身而不是加载的图像上。