压缩图像而不保存它 -- 在 Java

Compress image without saving it -- in Java

在 Java 中,有没有办法计算压缩图像的大小 w/o 保存图像? (这将用于确定将图像压缩到特定大小所需的质量。)

Something like this,但在 Java 而不是 C# 中,并且 Stream 可能是死胡同。

这是一个简单的实现。

public class LengthCounterOutputStream extends OutputStream{

    private int byteCounter = 0;

    @Override
    public void write(int b){
        byteCounter++;
    }

    @Override
    public void write(@NotNull byte[] b){
        this.write(b, 0, b.length);
    }

    @Override
    public void write(@NotNull byte[] b, int off, int len){
        byteCounter += len;
    }

    public int getByteCounter(){
        return byteCounter;
    }
}