最近我正在学习skia库(谷歌开源2d引擎,可以在安卓和铬上使用等),现在我想在windows上使用它,而不是在GDI+上使用它不支持带有抗锯齿的剪辑区域,在它的过程中,我发现了一个关于像素的问题。
up is set antialias,down is not set antialias
主要代码是:
paint.setStrokeWidth(1);
paint.setStyle(SkPaint::kStroke_Style);
paint.setAntiAlias(true);
canvas.drawRect(skrect,paint); //draw up rect
skrect.fTop += 110;
skrect.fBottom += 110;
paint.setAntiAlias(false);
canvas.drawRect(skrect, paint); //draw down rect如你所见,同样的矩形,如果我没有设置抗锯齿,边界像素是1(我设置strock是1),但是如果我设置了抗锯齿,边界像素是2,它变得有点亮,尽管我设置的颜色是黑色。
我不知道为什么,有人能告诉我吗?
谢谢,
发布于 2017-03-02 13:28:06
现在,也许我知道。
skia库的画布应该像Html5的画布,画布每一条线都有一条无限细的“线”,线的宽度从中心线开始伸展,所以如果我们画一条1px的线,实际上它会填充两个0.5个像素点,但显示设备不允许这样做,所以它将填充2个像素点,并设置更多的颜色来区分真正的2个像素。
我会搜索更多的材料来证明这一点。
https://stackoverflow.com/questions/42465758
复制相似问题