从数据库获取图像后,当我尝试调整它的大小时,通过使用以下代码传递宽度
public static BufferedImage resize(final byte[] pImageData,
final int width, final int height, final int maxLength, final int minLength, final String imageSubType) throws Exception {
InputStream is = null;
BufferedImage resizeImageJpg = null;
try {
is = new ByteArrayInputStream(pImageData);
BufferedImage originalImage = ImageIO.read(is);
--------------------
}
}
在行抛出以下异常:
BufferedImage originalImage = ImageIO.read(is);
异常(exception):
Caused by: java.awt.color.CMMException: Invalid image format
at sun.awt.color.CMM.checkStatus(CMM.java:131)
at sun.awt.color.ICC_Transform.<init>(ICC_Transform.java:89)
at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:516)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(JPEGImageReader.java:1169)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1137)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:948)
at javax.imageio.ImageIO.read(ImageIO.java:1422)
at javax.imageio.ImageIO.read(ImageIO.java:1326)
关于为什么只针对某些图像抛出此错误的任何想法。是不是图片有问题。如果是这样,可能的错误是什么
最佳答案
顺便说一句,这个 CMMException 问题在 JDK8 中得到修复(注意 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7064516 底部的提交)。我已经确认 a pre-release build of JDK8如上所述正确加载 JDK7 失败的图像。
关于java - 调整某些图像大小时抛出异常 "java.awt.color.CMMException: Invalid image format"...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288813/