有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么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

共 (2) 个答案

  1. # 2 楼答案

    我知道我知道这个问题,我很抱歉图像格式是错误的,它应该是。jpg