首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于skia抗锯齿

关于skia抗锯齿
EN

Stack Overflow用户
提问于 2017-02-26 15:11:29
回答 1查看 1.8K关注 0票数 2

最近我正在学习skia库(谷歌开源2d引擎,可以在安卓和铬上使用等),现在我想在windows上使用它,而不是在GDI+上使用它不支持带有抗锯齿的剪辑区域,在它的过程中,我发现了一个关于像素的问题。

up is set antialias,down is not set antialias

主要代码是:

代码语言:javascript
复制
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,它变得有点亮,尽管我设置的颜色是黑色。

我不知道为什么,有人能告诉我吗?

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2017-03-02 13:28:06

现在,也许我知道。

skia库的画布应该像Html5的画布,画布每一条线都有一条无限细的“线”,线的宽度从中心线开始伸展,所以如果我们画一条1px的线,实际上它会填充两个0.5个像素点,但显示设备不允许这样做,所以它将填充2个像素点,并设置更多的颜色来区分真正的2个像素。

我会搜索更多的材料来证明这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42465758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档