旋转照片文件并保持Android的质量

时间:2014-04-24 03:20:00

标签: android

我使用下面的代码来旋转照片文件:

Bitmap bmp = BitmapFactory.decodeFile(sourcePath);
Matrix matrix = new Matrix();
matrix.postRotate(90);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
FileOutputStream fOut = new FileOutputStream(destPath);
bmp.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();

它可以旋转文件成功 但它会使文件质量低下 如果旋转的次数越来越多,就会变得不清楚 我想保持质量,我该怎么办?

1 个答案:

答案 0 :(得分:1)

  

如果旋转的次数越来越多,就会变得不清楚。

这是一个称为generation loss的压缩工件。这是反复压缩JPEG的结果。阻止它的一个简单方法是使用像PNG这样的无损压缩方法。例如:

bmp.compress(Bitmap.CompressFormat.PNG, 0, fOut);

您可能还有兴趣阅读:JPEG - Compression ratio and artifacts