我正在尝试使用这种方法压缩图像:Setting jpg compression level with ImageIO in Java。
该解决方案效果很好,但是当我将ObjectOutputStream设置为writer输出时,我使用了ObjectOutputStream而不是FileImageOutputStream,但出现了java.lang.IllegalArgumentException: Illegal output type!
异常。我需要使用ObjectOutputStream。
这非常适合ImageIO.write(img, "jpg", outstream);
。
当您调用ImageIO.write(img, "jpg", outstream);
时,该方法将调用ImageIO.write(img, "jpg", outstream);
并将结果传递给ImageIO.createImageOutputStream(outstream)
。直接拨打ImageIO.createImageOutputStream(outstream)
时,必须自己完成。
ImageWriter