调整大小后输出图像 (jpg) 变为红色 - Java AWT

Output image (jpg) turns red after resizing - Java AWT

我有一段非常简单的代码,它接收图像的路径,读取它并调整它的大小:

File inputFile = new File(inputImagePath);
BufferedImage inputImage = ImageIO.read(inputFile);

BufferedImage outputImage = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = outputImage.createGraphics();
graphics2D.drawImage(inputImage.getScaledInstance(scaledWidth, scaledHeight, Image.SCALE_SMOOTH), 0, 0, scaledWidth, scaledHeight, null);
graphics2D.dispose();

return outputImage;

大多数文件都可以正常工作。但是,有一个文件(到目前为止我发现的)在调整大小后变成红色。这是一个 JPG 文件:

BufferedImage@c4d0fc: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@17476bd transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 1920 height = 1080 #numDataElements 3 dataOff[0] = 2

其他工作正常的图像文件也是类型 5。

为什么会这样?图像不应该有 alpha...

我决定在客户端使用 Java 脚本调整大小。它做起来更快更简单。此外,在 Java 中创建像样的缩略图可能会非常痛苦:https://community.oracle.com/docs/DOC-983611