gpt4 book ai didi

java - 为什么java显示IIOImage异常

转载 作者:行者123 更新时间:2023-12-01 14:03:44 25 4
gpt4 key购买 nike

什么原因javax.imageio.IIOException: Sample size must be <= 8 。我尝试这样写 IIOImage

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

最佳答案

也许你应该使用

com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriter

用于渲染图像的类。请参阅THIS 链接。您还可以查看以下内容:

  1. http://www.codingtiger.com/questions/java/ImageIO-not-able-to-write-a-JPEG-file.html
  2. ImageIO not able to write a JPEG file

关于java - 为什么java显示IIOImage异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com