1

我目前正在尝试在我的应用程序中实现一个旋转功能,该功能正在播放图像。

该功能将允许用户将图像旋转 -90 度和 +90 度(切换横向/纵向模式)

这是我的代码:

public Bitmap rotateRight(Bitmap bm) {
    Matrix matrix = new Matrix();
    matrix.postRotate((float)90);

    Bitmap nbm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
    nbm.setDensity(bm.getDensity());
    return nbm; 
}

之后,我将图像保存到文件系统。

这项工作完美,但如果我尝试将同一图像旋转 5 或 6 次,就会出现问题。图像质量会下降,我最终将有一个非常丑陋的图像来显示......

你可以帮帮我吗 ?先感谢您 !

4

1 回答 1

2

第一:in的最后一个参数createBitmap()是是否过滤得到的位图。当它设置为 true 时,每次执行此操作时,您的位图都会变得更加“模糊”。由于您不更改位图的大小,您可能希望将其关闭。

其次:确保将图像保存为无损格式,例如 PNG。如果您保存为 JPG 或其他有损格式,则每次保存都会降低质量,即使您将质量参数设置为最高也是如此。

于 2012-04-13T12:44:07.970 回答