关于skia antialias
Posted
技术标签:
【中文标题】关于skia antialias【英文标题】:About skia antialias 【发布时间】:2017-02-26 07:11:28 【问题描述】:最近我在学习skia库(google开源2d引擎,可用于android和chromium等),现在我想在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
如你所见,同样的矩形,如果我不设置Antialias,边界像素为1(我设置sock width为1),但如果我设置Antialias,边界像素为2,它变得有点亮,虽然我设置的颜色是黑色。
不知道为什么,谁能告诉我?
谢谢,
【问题讨论】:
【参考方案1】:现在,也许我知道了。
skia库的canvas应该像html5的canvas一样,canvas的每一行都有一条无限细的“线”,线的宽度从中心线开始伸展,所以如果我们画一个1px的线,其实就是将填充两个 0.5 像素点,但显示设备不允许这样做,因此它将填充 2 个像素点,并将其设置为更亮的颜色以区分真实的 2 个像素。
我会搜索更多的材料来证明这一点。
【讨论】:
以上是关于关于skia antialias的主要内容,如果未能解决你的问题,请参考以下文章
openCV 相当于 PIL 调整大小 ANTIALIAS?