Drawing rotated bitmap with anti alias

限于喜欢 提交于 2019-12-21 09:19:31

问题


I tried to paint a rotated bitmap with anti alias turned on, but it still has alias and it's not smooth, any help?

I did as following:

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);

回答1:


Paint.setAntiAlias() is for text.

You want p.setFilterBitmap(true);.




回答2:


In case you're rotating without a canvas (with createBitmap), set filter to true.

Example:

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;
}


来源:https://stackoverflow.com/questions/8926622/drawing-rotated-bitmap-with-anti-alias

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!