原因是什麼javax.imageio.IIOException: Sample size must be <= 8
。 我嘗試寫IIOImage中這樣爲什麼IIOImageException java顯示
public static byte[] compressImage(BufferedImage imageSource, float quality) throws IOException {
Iterator i = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter) i.next();
ImageWriteParam iwp = writer.getDefaultWriteParam();
iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
iwp.setCompressionQuality(quality);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageOutputStream output = ImageIO.createImageOutputStream(bos);
writer.setOutput(output);
IIOImage image = new IIOImage(imageSource, null, null);
writer.write(null, image, iwp);
writer.dispose();
return bos.toByteArray();
}
但當ImageWriter的嘗試寫IIOImage中,異常被顯示。我不知道有什麼問題,但如果圖像尺寸很大,沒有任何異常顯示和運行完美,但是如果圖像尺寸很小,則顯示javax.imageio.IIOException: Sample size must be <= 8
。 Iam對我的不好英語感到抱歉,謝謝你對我的問題的回覆。哦,這裏是完整的跟蹤
Caused by: javax.imageio.IIOException: Sample size must be <= 8
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:494) ~[na:1.7.0_21]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:360) ~[na:1.7.0_21]
at com.daksa.cms.util.ImageCompressor.compressImage(ImageCompressor.java:37) ~[CmsServer-ejb_jar/:na]
at com.daksa.cms.util.ImageCompressor.compressImageToSize(ImageCompressor.java:47) ~[CmsServer-ejb_jar/:na]
at com.daksa.cms.bean.PersoEventBean.resizeImage(PersoEventBean.java:292) ~[CmsServer-ejb_jar/:na]
... 85 common frames omitted
在哪裏我可以下載這個庫? – Yusuf1494
從[這裏](http://grepcode.com/snapshot/repo1.maven.org/maven2/com.sun.media/jai_imageio/1.1/)。你在使用OpenJDk嗎? –
感謝您的幫助,我解決了這個問題 – Yusuf1494