这显然是一个知道的错误,我看到了几个建议(this是一个),建议使用Toolkit#createImage
来代替,这显然忽略了颜色模型。
我测试了这个,它似乎工作正常。
public class TestImageIO01 {
public static void main(String[] args) {
try {
Image in = Toolkit.getDefaultToolkit().createImage("C:\\hold\\test\\13652375852388.jpg");
JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(in)), "Yeah", JOptionPane.INFORMATION_MESSAGE);
BufferedImage out = new BufferedImage(in.getWidth(null), in.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = out.createGraphics();
g2d.drawImage(in, 0, 0, null);
g2d.dispose();
ImageIO.write(out, "jpg", new File("C:\\hold\\test\\Test01.jpg"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
nb-我用JOptionPane
来验证传入的图像。当使用ImageIO
它带有红色色调,Toolkit
它看起来很好。
更新
而一个explantation
EMM,你选择一个漂亮的照片我喜欢你的味道:) 我不知道什么是颜色的问题,但尝试这个 'BufferedImage的IMG = ImageIO.read(new File(“path/to/image”));' – Azad 2013-04-09 06:55:26
其实,我试过了,但是失败了...... – victorunique 2013-04-09 07:04:31
[用红色面具创建的java缓冲图像](http:// stackoverflow.com/questions/12963685/java-buffered-image-created-with-red-mask) – haraldK 2016-05-19 09:27:34