【问题标题】:Bitmap loses its quality after rotating canvas旋转画布后位图失去其质量
【发布时间】:2017-05-30 13:02:50
【问题描述】:

我的自定义视图(指南针)中有很多绘制操作。我决定通过在onSizeChanged() 方法中的位图上绘制整个指南针来优化它,而不是每次onDraw() 触发时直接绘制它。

这是onDraw()方法的一部分:

canvas.rotate(-heading, x, y);
canvas.drawBitmap(compassBitmap, 0f, compassBitmapY, compassBitmapPaint);

我的问题是旋转后会发生什么。位图失去了它的质量。 设置ANTI_ALIAS_FLAG 根本没有帮助。有什么办法可以解决这个问题还是我应该回到“更重”的实现?

【问题讨论】:

    标签: android canvas view bitmap draw


    【解决方案1】:

    要旋转图像而不损失其质量是不可能的,它受分辨率的限制。

    如果新的目的地不是 (int, int) 像素,则需要重新计算每个像素位置,以便与原始图像最接近。

    http://homepages.inf.ed.ac.uk/rbf/HIPR2/rotate.htm

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多