繁体   English   中英

调整某些图像的大小时会引发异常“ java.awt.color.CMMException:无效的图像格式”,为什么?

[英]Exception “java.awt.color.CMMException: Invalid image format” thrown when resizing certain images…why?

从数据库获取图像后,当我尝试通过使用以下代码传递宽度来调整其大小时

        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);

例外:

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的底部)。 我已经确认, 如上所述,JDK8的预发布版本可以正确加载JDK7失败的图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM