我使用下面的代码来旋转照片文件:
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();
它可以旋转文件成功 但它会使文件质量低下 如果旋转的次数越来越多,就会变得不清楚 我想保持质量,我该怎么办?
答案 0 :(得分:1)
如果旋转的次数越来越多,就会变得不清楚。
这是一个称为generation loss的压缩工件。这是反复压缩JPEG
的结果。阻止它的一个简单方法是使用像PNG
这样的无损压缩方法。例如:
bmp.compress(Bitmap.CompressFormat.PNG, 0, fOut);
您可能还有兴趣阅读:JPEG - Compression ratio and artifacts