压缩位图两次导致文件大小比第一次压缩大

时间:2017-10-18 09:08:02

标签: java android performance

public static File createBitmapToFile(File file, Bitmap bmp, int quality) {
    try {
        OutputStream out = FileUtils.openOutputStream(file);

        // First compression
        bmp.compress(Bitmap.CompressFormat.JPEG, quality, out);

        // Second compression
        bmp.compress(Bitmap.CompressFormat.JPEG, quality, out);

        out.flush();
        out.close();

        return file;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

我仍然不知道为什么第二次压缩导致更大的文件大小。我用70作为质量。

我在做错事吗?当你压缩某些东西并再压缩它不应该变小吗?

我的目标是不超过100k字节,所以当我超过它时,我需要降低文件大小。

1 个答案:

答案 0 :(得分:0)

你不是'两次压缩位图'。您正在压缩它一次,并将其写入文件,并再次压缩它,原始位图,并将其写入文件。结果将是一次压缩的两倍。解决方案:使用一次压缩。

为什么你预计两次压缩小于一次,即使做得正确,也是另一个问题,但这不是你的代码实际做的。