头脑风暴:借助计算机制作心形图案,可以有多少种方法?办法有很多。比如,直接用画图软件的“铅笔”画出一个心,在记事本中用几行星号排列出心的形状,在一个多行多列的电子表格中给某些单元格上背景色……请相信,只要时间足够多,全班每个学生都能想出属于自己的独特方法。
图像数字化的一个常用方法,是将图片变成一个由色点纵横组合而成的点阵,用Windows自带的画图软件打开某张BMP格式的图片,然后通过“查看一缩放一自定义”放大视图到800%,就能观察到点阵是如何起作用的。接下去的任务颇有挑战性:将画布尺寸设为8*8像素,然后在里面画出一个心,以用作某个程序的图标(Icon)。为了便于读者观察,本文所演示的图片用黑白两色勾勒出棋盘状的画框,然后在其中描出心形点阵,可以看出,留给创作者的空间其实是非常局促的。
这个心画得很勉强(如图1),因为几乎不可能画出弧形线条,本该是斜线和弧线的地方,看上去都成了锯齿,最容易想到的解决办法,是把网格做得更加细密以提高分辨率,但有的时候,分辨率因为软件因素(如制作小图标)或硬件因素(如显示设备较差)受限而不能改变,这时候就要用到抗锯齿技术(Anti aliasing)。抗锯齿技术有好几种,其中较为容易实现的一种,称为半透明抗锯齿法,什么意思呢?下面用一个简单的图形处理实验来揭示其中奥妙,本文借用开源软件GIMP来演示效果,GIMP可在网络上免费下载获得,若读者手头有Photoshop之类的商业软件,实验流程也与此大致相似:①在windows画图软件中画一条黑色的倾斜直线(如图2),可观察到明显的锯齿痕迹,将此图保存为BMP格式文件;②用GIMP打开该文件,点击“滤镜一增强一平滑边缘”菜单项,使直线看上去更光滑;③在GIMP中,通过“查看”菜单,放大视图并再次观察此倾斜直线,可发现,这条直线并没有真正变得光滑,锯齿仍然存在,只是在每个锯齿的凹陷处,都被填上了灰色的色点,这些灰点使人的眼睛产生出线条平滑的错觉(如图3)。实际上,使用计算机的人们,在敲打键盘或阅读文章的时候,常常不自觉地在与抗锯齿技术打交道,图4中的两个字母a,看起来都不漂亮,但将它们缩小后,美观程度就大不相同了。
虽然借助软件进行抗锯齿处理很容易,但想要实现最好的平滑效果,还是要依赖人类特有的艺术素养。不妨自我挑战一下,将8*8像素的心形图案人工地描绘上抗锯齿色点,使其看上去更可爱。(答案在本期