如何从正在绘制到位图中的文本中删除伪像

时间:2011-01-22 20:41:39

标签: android graphics canvas bitmap visual-artifacts

如果你愿意,我有一个背景位图,我正在将另一个带有字体的位图绘制到背景位图中。当我只是在彼此的顶部绘制并放大我需要的水平时,它们看起来完美而没有伪影,而且我想要它。但出于我的目的,我需要将字体位图合并到背景位图中,因此它基本上变成了一个项目。我显然需要在运行时完成它,而我正在使用的解决方案就是这个....

canvas2 = new Canvas(backgroundBitmap);
canvas2.drawBitmap(fontBitmap.getBitmap(), null, rects.get(backgroundRectIndex), null);
invalidate();

现在,当我放大我需要的级别时,字体有伪像。我是相当新的图形,并阅读了几篇关于类似问题的文章和问题,我尝试使用paint中的抖动并在canvas2.drawBitmap中使用它而不是null,但似乎没有任何帮助。我偶然发现了......

  

这不适用于应用程序在内部创建内存位图并在其上绘制内容以便稍后在屏幕上显示的情况。该平台在绘制时动态地自动缩放这些位图。这种情况的其他副作用可能是,当屏幕外位图最终渲染到显示器时,这种位图中绘制的字体将在位图级别进行缩放,从而导致缩放伪像。

link text

听起来这可能是我的问题,但我该如何解决?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果要缩放位图,请确保关闭filterBitmap标志。

在油漆上它应该是:

paint.setFilterBitmap(false);