繁体   English   中英

将 ImageWriter 输出设置为 ObjectOutputStream

[英]Set ImageWriter output to ObjectOutputStream

我正在尝试使用这种方法压缩图像: Setting jpg compression level with ImageIO in Java

该解决方案工作正常,但我使用 ObjectOutputStream 而不是 FileImageOutputStream,当我将 ObjectOutputStream 设置为编写器输出时,我得到一个java.lang.IllegalArgumentException: Illegal output type! 例外。 我需要使用 ObjectOutputStream。

这完美地工作ImageIO.write(img, "jpg", outstream); .

当你调用ImageIO.write(img, "jpg", outstream); ,该方法将调用ImageIO.createImageOutputStream(outstream)并将结果传递给ImageWriter 当您直接调用setOutput ,您必须自己执行此操作。

ImageWriter w = ImageIO.getImageWritersByFormatName("jpg").next();
w.setOutput(ImageIO.createImageOutputStream(outputStream));
w.write(image);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM