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

时间:2017-05-10 13:45:00

标签: java awt jpeg

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

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文件:

Screenshot

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 ...

1 个答案:

答案 0 :(得分:0)

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