位图压缩破坏了图片质量。

3

我正在使用一个应用程序获取GPS位置并将其绘制为圆形放在位图上,然后保存它以进行后续处理,因此我需要重复读取和保存文件。但不幸的是,当我保存文件并读取它时,在一些迭代之后文件就会损坏...!
代码如下:

File output = new File(tmpDirectory, "map.jpg");
    try {
        OutputStream outputStream = new FileOutputStream(output);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
        outputStream.flush();
        outputStream.close();
    } catch (Exception ex) {
        Message("error!");
    }

    directory = tmpDirectory;//updating directory to load the manipulated image
    readFile(directory + "map.jpg", false);//setting the image view new image

图片包括:迭代后的图片 图片包括: 主要图片


1
我正在使用一个应用程序获取GPS位置并将其绘制为圆形位图,然后保存以进行后续处理,因此我需要重复读取和保存文件。-- 你为什么需要“重复读取和保存文件”?你已经有了位图,不需要再次读取它来使用该位图。 - CommonsWare
1个回答

6

JPEG使用有损压缩。这意味着每次迭代中都会失去一些质量。如果您想保留图像质量,应该使用无损格式如PNG。

bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接