最近在写个程序,打开多页的图像文件并显示。多页的图像文件我已用程序读取到一个BMP数组里,想在显示文件的同时显示缩略图, 象adobe reader显示多页PDF文件一样列在左边,显示页码并点击可以转到该页面。 看了网上多数说法都是用TLISTVIEW和Timagelist来做,用这个方法比较简单,但现在一个问题是创建BMP的缩放图比较慢,用STRECTCHDRAW效果还不好,而且tLISTVIEW添加也很慢,打开一个50-60页的文件并创建缩略图的话就要7-8秒左右,不知道有没更好的方法?

解决方案 »

  1.   

    你好,我有个方法你可以尝试一下。
    windows内部有个提供媒体文件预览功能的组件webvw.dll,该组件包含ThumbCtl这个控件,使用该控件可快速实现bmp图像的缩略图。
    具体方法是:在程序窗体左边生成一列大小合适的ThumbCtl组件,动态读入需要显示的图像。
    最好不要一次读入所有的BMP图到数组中,这样是比较消耗内存的。可以先扫描需要读入的BMP图像的文件名,并存储在文本型数组内,再根据用户的操作,动态读入BMP图像的缩略图ThumbCtl.DisplayFile(FileName),这样速度应该是令人满意的。如果需要例程,联系我吧。