Tag: resize image

是否有100%的Java替代ImageIO来读取JPEG文件?

我们正在使用Java2D来调整上传到我们网站的照片的大小,但是我们遇到了一个问题(一个看似旧的问题,参见: http : //forums.sun.com/thread.jspa?threadID = 5425569 ) – 一些特殊的JPEG当我们尝试ImageIO.read()包含其二进制数据的InputStream时,引发CMMException : java.awt.color.CMMException: Invalid image format at sun.awt.color.CMM.checkStatus(CMM.java:131) at sun.awt.color.ICC_Transform.(ICC_Transform.java:89) at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:516) at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(JPEGImageReader.java:1114) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImage(Native Method) at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1082) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:897) at javax.imageio.ImageIO.read(ImageIO.java:1422) at javax.imageio.ImageIO.read(ImageIO.java:1326) … (剪断了堆栈跟踪的剩余部分,这是我们的ImageIO.read()调用,servlet代码等) 我们将其缩小到特定相机拍摄的照片,然后我选择了一张触发此错误的照片: http : //img214.imageshack.us/img214/5121/estacaosp.jpg 。 我们注意到这只发生在Sun的JVM上(在Linux和Mac上,只是在1.6.0_20上测试过) – 一台带有OpenJDK的测试机器可以顺利读取相同的照片,这可能是由于JPEG阅读器的不同实现。 不幸的是,我们无法在生产中切换JVM,也无法使用ImageMagick( http://www.imagemagick.org/ )等本机相关解决方案。 考虑到这一点,我的问题是:是否存在替代可以处理链接照片之类的照片的ImageIO JPEG读取器? 如果没有,我们可以使用另一个100%纯Java照片大小调整解决方案吗? 谢谢!