编程的那些锯齿

来源:互联网 发布:matlab创建稀疏矩阵 编辑:程序博客网 时间:2024/05/30 04:48

在编程的时候通常会遇到不少缩放图片的情况,当把大图片缩成小图片的时候还好,因为就算是失真了由于图片本来就小,所以也不容易看出到底哪里有锯齿(因为图片本来就不清晰)。然而当把图片放大的时候,如果不做处理就会将本来的像素点放大n倍,这样原本只有一个像素点的就会变成n^2个像素点,这样的正方形锯齿就相当明显了。不过现在大部分图形库都自带消除锯齿的处理,它们会在这些按照一般倍数增加的像素点之间添加一些填充的像素点,并对这些像素点做柔化处理(其实就是把生硬的颜色变得柔和,也就是变得透明),总之消除锯齿并非真正意义上的“消除”吗,而是让人不容易感觉到锯齿。

像这些像素点的处理最大的条件是显示器的像素点足够小,如果遇到本来像素点就很大的屏幕有该怎么办。虽然这些像素点特别大的屏幕绝大多数都是特制的,如:广场上的大屏、显示文字的点阵显示器。这些要不就是离得很远观看,要不就是只显示文字的显示器,不过也免不了有靠近看的时候,所以在这些显示器件上也可以适当做一些处理。

正如之前所说的,消除锯齿并非真正的消除,而是让人不容易感觉到锯齿。对于那些像素点本来就很大的显示器件,在锯齿之间填充平滑的锯齿显然是行不通的,所以只能在锯齿附近或者直接在锯齿上做一些柔化处理,最简单的柔化处理就是将颜色变得半透明,这样锯齿附近的颜色就呈现了渐变色彩,锯齿往往只产生在一个事物与另一个事物的边界上,将边界变得具有渐变色彩,这样肉眼就不容易分辨出物体与物体之间的分界线了。

0 0
原创粉丝点击