2017-02-26 208 views
1

最近我在学习Skia的图书馆(谷歌开源的2D引擎,可以在Android和铬等使用。),现在我想在使用它在Windows,而不是与反锯齿GDI +不支持剪辑区域,它,我发现一个关于像素的问题。关于Skia的抗锯齿

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(I设置抚摩宽度为1),但如果我设置了Antialias,边界像素是2,并且它变得有点亮,但我设置的颜色是黑色。

我不konw为什么,谁能告诉我?

thk,

回答

0

现在,也许我konw。

skia库的画布应该像Html5的画布一样,画布的每一行都有一条无限薄的“线条”,从中心线的宽度线伸展,所以如果我们画一条1px的线,它将填补0.5像素点的两个,而是在显示装置不允许它这样做,所以它将填补2像素点,并将其设置颜色更多的光来区分真实2个像素。

我将寻找更多的材料来证明这一点。