呵呵,这个问题高手也难答:谁用ListView做过类似ACDSee的浏览缩略图的控件?我们交流一下。(200分)

  • 主题发起人 主题发起人 shang_yan
  • 开始时间 开始时间
S

shang_yan

Unregistered / Unconfirmed
GUEST, unregistred user!
谁用ListView做过类似ACDSee的浏览缩略图的控件?
我做了一个,功能、速度尚可,但当浏览图片超过300幅左右时,会出现后面的图片文件不能正常显示的现象。
我实现的思路是:
1.将图片缩小后加载到ImageList控件中
2.再将ImageList中的图片赋给ListView中的Item.

能正常显示,可就是会出现前面讲的问题。我已看过csdn和大富翁上所有有关的帖子
没有满意的答案。

可有高手能指点一二?
 
还说明一下,我也几乎试过了知道了所有控件:ImageEn,TThumbView等等,性能都太差,还
不如我做的。
另外,将图片画在一个image上的方法我也做成了,总感觉实现到ACDSee的程度太难。用ListView
实现起来要简单一些。
只要解决了我说的那个问题,同时解决多线程读图片文件的功能(这个我很快将做完)
,我做的缩略图控件性能应该可以满足很多人的要求了。
 
你的方法是对的,由于 ListView 是一个 Shell 组件,想把速度提得很高是不现实的。
所以很少使用这个控件来做需要高速转换的工作,See 不是使用 ListView 的。
 
1、有什么办法知道ACDSee不是用listView做的?
2、我现在碰到的问题不是速度问题,因为我做的控件速度尚能接受,比ACDSee略慢,比
我能见到的缩略图控件都快。

我现在碰到的问题是假如一个目录中有500个JPG文件,第一次浏览正常,可第二次或第三次
浏览时,约第300个JPG文件以后的文件都不能显示出来。而且第浏览一次目录,就少显示约
30个JPG文件。浏览了若干次后,所有的文件就都不能显示了。
 
我这里有一个例子(别人写的)应该可以满足你的要求
huazai@zju.edu.cn
 
没有做过类似的东西,但是我知道IrfanView使用的是SysListView32也就是TListView做的,
他的速度还可以,只是他要一边向下滚动一边显示的,你是不是没有让ListView滚动?
还有我觉得你说的现象不像是ListView的问题啊,可能是那里写得有问题了,不过也不排除
TListView封装的有毛病。
 
我觉得ListView完全可以做缩略图浏览。
如果我所说的那个问题解决了,性能可以和ACDSee媲美
 
To:huazai
我的Email:shang_yan@0733.com,请你把你说的例子给我好吗
 
什么教“片文件不能正常显示的现象”??
 
To:huazai
我的Email:johnny05@ms14.hinet.net,请你把你说的例子给我好吗
 
to 一个过客:
什么教“片文件不能正常显示的现象”??

是“图片文件不能正常显示”

to :huazai
您的邮件我还没收到
 
我做了一个类似ACDSee的软件,欢迎大家试用:
http://download.com.com/3001-2192-10143013.html
现在已经升级到了1.1版本,download.com更新慢 :)

大家请注意 看图质量: 一幅包含文字的图,通过此软件缩小观看仍然看的清楚文字信息,
而其它的一些看图软件就不行了.
对于有很多图的目录,你拉动滚动条到哪个位置,缩略图区域就先显示那个位置的缩略图.
还有就是图像打印功能,应该是很方便使用的.....
还有就是,我不是用listview来做的 :)
 
我马上下载试用,但愿能得到您的指教
 
to shang_yan:
ACDSee32 v2.4用的是ListView,其他的版本不清楚
我的程序和你的思路一样,怎么没有你说的现象?
不过在打开一个文件较多的目录时速度很慢,比ACDSee要慢很多。今天晚上再改进一下。
to pengyt:
你的软件很好, 不过发现一个小问题:
如果垂直的Splitter非常靠近左边时,在左下角那个地方的图片就会变得很小,
如果这时你拖动垂直的Splitter,你会发现那个小图片会变大,不过同时也会变得模糊起来,
当你松开鼠标后他会再刷新一下,变清楚了。这点是否需要改进呢?

 
To pengyt,
我已用过了。你的缩略图部分做得好,速度也很快,正是我要的。
不知可否就技术问题向您请教?
 
to 独帅
你试过浏览包含300-1000个以上JPG文件的目录吗?我的软件在浏览100个JPG文件以内的
目录时,根本不会出现什么问题。
我的软件在浏览时,好象每次都吃掉了一些资源。
 
"如果这时你拖动垂直的Splitter,你会发现那个小图片会变大,不过同时也会变得模糊起来,
当你松开鼠标后他会再刷新一下,变清楚了。这点是否需要改进呢?"

如果你在拖动的过程中就一直在刷新,那CPU不是很忙 :) ?
我的缩略图是我写的一个算法,不是直接StretchDraw的: 你用它来看看你的屏幕的截图
就知道了.ACDSee新版本就是这样做的.
我的viewer部分是边解码边平滑的.
 
to 独帅:
能将你做的软件发一份给我吗?shang_yan@0733.com
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
851
DelphiTeacher的专栏
D
后退
顶部