Canvas类的所有方法都使用float类型的坐标。但为什么?据我所知,这个坐标意味着要显示的像素数。像素可以分开吗?
答案 0 :(得分:5)
某些设备支持亚像素精度。
在标准LCD屏幕上,像素实际上是三个子像素,一个是红色,一个是绿色,一个是蓝色。 (红绿蓝)。并且在子像素级别渲染可以获得更清晰,更好看的图像。
作为一个粗略的例子,不是在屏幕上指定一个白色“RGB”像素的位置,而是通过在屏幕上实际使用两个像素,在屏幕上稍微不同的位置更接近地渲染白色“像素”。屏幕。
在屏幕上考虑三个RGB像素。考虑通过点亮像素二上的R,G和B子像素来显示白色像素:
one two three
----- ----- -----
_ _ _ R G B _ _ _
并将其与子像素渲染进行比较:
one two three
----- ----- -----
_ _ B R G _ _ _ _
_ _ _ R G B _ _ _
_ _ _ _ G B R _ _
对于人眼来说,所有这些看起来都像一个白色像素,但是子像素渲染可以更好地控制放置。这种只照亮部分像素的技术,以及相邻像素的发光部分在“线条平滑”(抗锯齿)方面都很有效。
除了传统的RGB条纹LCD之外,还有其他屏幕技术。例如,考虑各种RGBG Amoled格式屏幕(三星Galaxy显示器)。