
[英]ObjectOutputStream.writeBytes(String s) unexpected output values
[英]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.