为什么像素是浮动的?

时间:2014-04-08 16:49:59

标签: java android

Canvas类的所有方法都使用float类型的坐标。但为什么?据我所知,这个坐标意味着要显示的像素数。像素可以分开吗?

1 个答案:

答案 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显示器)。