栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么使用JavaIO加载此jpg会导致CMMException?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么使用JavaIO加载此jpg会导致CMMException?

我想我掌握了您的问题。我检查了您链接的图像(http://www.jthink.net/jaikoz/scratch/front.jpg)。其归因于Exif和JFIF标准。

当您执行类似操作时,

ImageIO.read('some file')
它将调用默认的sun
jpeg实现
com.sun.imageio.plugins.jpeg.JPEGImageReader
。过去在加载JFIF文件BUG
6488904时遇到问题
(请检查注释到最后)。

根据 规范
,Exif和JFIF都要求它们各自的应用程序标记段必须位于SOI(APP1和APP0)之后的第一个位置,因此,实际上每个规范都不可能使JPEG文件符合这两个标准。

虽然据报很久以前

解决方法是使用JAI库(https://jai.dev.java.net/binary-
builds.html#Release_builds)。我正在使用 Java(无本机加速) 版本。

SeekableStream seekableStream =  new FileSeekableStream(new File("front.jpg"));ParameterBlock pb = new ParameterBlock();pb.add(seekableStream);BufferedImage image = JAI.create("jpeg", pb).getAsBufferedImage();

希望这会有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号