为什么IIOImageException java显示
什么是javax.imageio.IIOException: Sample size must be <= 8
的原因。
我试着写这样的图像
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
。很抱歉我的英语不好,谢谢你对我问题的回答。哦,这是完整的痕迹
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
# 1 楼答案
也许你应该使用
类来渲染图像。请参见链接。您还可以查看以下内容:
# 2 楼答案
我知道我知道这个问题,我很抱歉图像格式是错误的,它应该是。jpg