为什么在位图上绘制形状会降低质量?

时间:2017-03-23 16:58:50

标签: android

为什么将形状绘制到位图会导致形状模糊而不是直接将形状绘制到画布上?

1 个答案:

答案 0 :(得分:1)

位图是rasterized computer image,由点(像素)组成。

Canvas类拥有" draw"调用

形状是形状的抽象定义(类似矢量)。

  

将形状直接绘制到画布上

这不准确,也许你指的是设备屏幕,也就是Bitmap。

要使用Canvas进行绘制,您需要画布来托管调用,一些位图作为目标,一些绘图图元(形状是一个)和Paint(包含如何绘制绘图图元的信息)。

将一些形状绘制到目标位图后,它将被别名化为目标位图的像素。 IE浏览器。一个圆圈将变成由目标位图的矩形像素创建的一些近似值。

您可能在特定情况下看到的是,您的Bitmap的分辨率低于屏幕,当您将该低分辨率位图绘制到目标屏幕位图时,它会被某些滤镜升级,这使得放大的图片有点像模糊以避免大的矩形像素化(或者也可能是其他方式,缩小高分辨率位图,其包含太尖锐/薄的轮廓,在缩小时将第二次混叠,并且即使使用抗混叠滤波它也会变得模糊位)。或者你可能会使用一些设置导致模糊的油漆(不太可能,不会想到偶然创建一个,你会知道)。

如果您将同时使用两个目标相同密度的Bitmap(单个像素的分辨率)和相同的绘制方法,那么结果将是相同的,并且只要您将使用整体,也可以将位图从位图绘制到位图像素坐标/大小,没有过滤,结果再次与直接绘制到屏幕位图相同。

首先检查位图与屏幕位图的大小,然后检查绘画设置和其他画布参数以绘制位图,无论您是否通过某种过滤对其进行高级/缩小。