图形图像显示研究(二)

 

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

前言:继续更新我的图像显示研究方面的文章。

 

     今天草拟了一个研究提纲:

 

1.小图像的显示思路

2.图像的采样方法

3.图像显示的闪烁问题及其解决办法

4.大图像的显示调度算法(GDI环境)

5.图像的基本操作原理(漫游、拉框放大、拉框缩小等)

6. 图像的插值方法

7OpenGL环境下的图像显示

8.图像格式概述

9.一种比较好的遥感图像格式——PCIDSK

10.一些著名的C++图像库

11.图形显示

 

 

现在我们开始今天的研究内容:小图像的显示思路。在《图形图像显示研究(一)》我在曾经给过一段代码,介绍了如何在客户区内显示一幅位图。现在我们从这段代码中得到一个图像显示的理论上的认识,就是在GDI环境下一般的图像显示步骤是如何完成的。大致的步骤如下图:

 

   

        

 

     现在我们看看打开图像显示这一流程中工作量最大的一步是什么呢?我看主要是打开图像文件,将图像数据读入缓冲区,其次就是构建内存位图,其余的都有Win32 API或MFC帮我们的忙。具体的的方式比较多样:可以利用MFCCBitmap类,然后将其选入兼容,也可以先构建一个内存块,然后通过StretchDIBits函数复制到兼容DC,最后窗口DC通过调用CDC:: BitBlt函数将图像绘制到客户区。

  

  但是实际上进行图像显示还得考虑一些问题:一是图像采样问题;二是画面闪烁问题。今天先谈一下图像采样问题。什么是图像采样问题?我们知道一般电脑的屏幕的大小都是固定的,如1024*768,这实际上也固定了显示窗口的大小,但是你要知道图像的宽高很可能是远远大于窗口的宽高的。在这种情况下,显示一幅图像大致有了两种思路:一是1:1显示,图像多大我就显示多大,窗口不够大怎么办?就是用滚动条;二是采样显示,根据窗口大小来对图像数据进行采样,窗口只显示采样后的数据。这两种显示方式,各有利弊:1:1显示优点在于图像细节逼真,缺点也很明显,用户无法一下一览全图;而采样显示的优缺点和1:1显示的正好相反。在大多数图像软件中往往采用采样显示的方式比较多,为什么呢?这实际上是和人们的认知心理相关的,人们认识一项事物,往往先从整体着眼,再局部把握,这自然也包括看图,再说采样显示中的细节不逼真的缺点也可以通过其它操作来弥补,比如局部放大。因此采样显示成了主流。

      

 下次介绍一下图像采样方法,敬请关注!

    

 

 

 

 

 

 

posted @ 2009-11-18 22:28  是金子就会灿烂  阅读(601)  评论(0编辑  收藏  举报