这不是一个重复的问题,因为我在谷歌和 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 或其他东西。