至此,整个应用程序已经设计完毕,编译项目并运行程序,便可显示和缩放图像。利用应用程序打开测试图像 “Peppers.bmp”,单击菜单“查看”->“缩小图像”,将得到缩小后的图像(原图的75%大小),如图1(a)所示,此时使用的是GDI方式显示。单击菜单“查看”->“GDI方式显示”,将显示方式切换到直接利用StretchDIBits函数缩放显示,得到如图1(b)所示的图像。对比两种显示方式缩小前后的图像发现,GDI方式显示的图像与原图像基本没有差异,而直接使用StretchDIBits缩小图像时却出现明显视觉失真。由此可见,利用GDI函数实现图像缩放的方式优于直接使用StretchDIBits缩放的方式。
(a) GDI方式显示 (b)直接使用StretchDIBits函数显示
图1 两种显示方式下的图像缩小效果
6 结语
图像缩放是图像处理中的一个基本操作。运用GDI函数设计了一个图像缩放函数,利用该函数实现图像缩放可减轻直接使用StretchDIBits函数带来的视觉失真。文中将缩放函数作为BMP类的一个成员函数,通过位图的缩放显示说明其有效可行,由于JPEG、GIF、PNG、TIFF等格式的图像均有相应的位图对应,对他们进行缩放处理和显示操作均可通过操作其对应位图实现,因此文中设计的缩放函数也可以应用到这些格式的图像。
参考文献
[1]唐振军,位图浏览器的设计. 电脑编程技巧与维护, 2007,(3):60-62. [2]王林, 杨克俭. 基于双线性插值的图像缩放算法. 电脑编程技巧与维护. 2008, (10):53,54,67.
|