将 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);
, the method will invoke ImageIO.createImageOutputStream(outstream)
and pass the result to the ImageWriter
. When you call setOutput
时,您必须自己调用。
ImageWriter w = ImageIO.getImageWritersByFormatName("jpg").next();
w.setOutput(ImageIO.createImageOutputStream(outputStream));
w.write(image);
我正在尝试使用此方法压缩图像: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);
, the method will invoke ImageIO.createImageOutputStream(outstream)
and pass the result to the ImageWriter
. When you call setOutput
时,您必须自己调用。
ImageWriter w = ImageIO.getImageWritersByFormatName("jpg").next();
w.setOutput(ImageIO.createImageOutputStream(outputStream));
w.write(image);