【问题标题】:Drawing rotated bitmap with anti alias使用抗锯齿绘制旋转位图
【发布时间】:2012-01-19 13:15:45
【问题描述】:

我尝试在启用抗锯齿的情况下绘制旋转位图,但它仍然有别名并且不平滑,有什么帮助吗?

我做了如下:

final Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setAntiAlias(true);
canvas.rotate(-mValues[0]);
canvas.drawBitmap(compass, -compass.getWidth()/2,-compass.getHeight()/2,p);

【问题讨论】:

    标签: android paint antialiasing


    【解决方案1】:

    Paint.setAntiAlias() 用于文本。

    你想要p.setFilterBitmap(true);。

    【讨论】:

      【解决方案2】:

      如果您在没有画布的情况下旋转(使用createBitmap),请将过滤器设置为true

      例子:

      private static Bitmap rotateBitmap(Bitmap srcImage, float angle) {
      
          Matrix matrix = new Matrix();
          matrix.postRotate(angle);
          Bitmap rotated = Bitmap.createBitmap(srcImage, 0, 0, srcImage.getWidth(), srcImage.getHeight(), matrix, true/*set true for anti-alias*/);
          srcImage.recycle(); // discard original image
      
          return rotated;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-19
        • 1970-01-01
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        • 2011-02-14
        相关资源
        最近更新 更多