【发布时间】:2016-05-19 17:24:05
【问题描述】:
这里不是重复问题,因为我在谷歌和StackOverflow上找了很久,还是找不到解决办法。
我有这两张图片:
这是来自同一网站的两张图片,具有相同的前缀和相同的格式。唯一的区别是大小:第一个较大,而第二个较小。
我将这两个图像下载到本地文件夹并使用 Java 将它们读入 BufferedImage 对象。但是,当我将 BufferedImages 输出到本地文件时,我发现第一个图像几乎是红色的,而第二个是正常的(与原始图像相同)。我的代码有什么问题?
byte[] rawData = getRawBytesFromFile(imageFilePath); // some code to read raw bytes from image file
ImageInputStream iis = ImageIO.createImageInputStream(new ByteArrayInputStream(rawData));
BufferedImage img = ImageIO.read(iis);
FileOutputStream fos = new FileOutputStream(outputImagePath, false);
ImageIO.write(img, "JPEG", fos);
fos.flush();
fos.close();
PS:我用 GIMP 打开第一张图片,发现颜色模式是 'sRGB',没有 alpha 或其他东西。
【问题讨论】:
-
emm,你选了一张漂亮的照片,我喜欢你的味道:)我不知道颜色有什么问题,但试试这个
BufferedImage img = ImageIO.read(new File("path/to/image")); -
其实我试过了,但是失败了……