我在做类似ACDSEE拇指框方式浏览图像时遇到问题,请指教。(200分)

  • 主题发起人 主题发起人 陈东海
  • 开始时间 开始时间
看看可不可以这样:
1.load 图片, 缩小显示之后 ,在临时文件中存储,
2.图象太多的时候. 创建一个滚屏位图.高度大概是显示区域高度的2-3倍.
这样滚动显示的时候可以动态调入,和动态的存储. .最好用一个线程来处理.
 
可是我用listview时,重画特别厉害,如何解决?
 
根据屏幕坐标系的点数,缩略图的大小(ACDSEE一般为50×60左右)和图像扫描线的象素
数对图像进行抽样读取放入内存,一般说来除去界面占用的面积1024×768的屏幕能最多
能放下35张左右,据我的经验占用内存不大。然后根据滚动条移动方向进行动态丢弃和读
取,在读取时要动态显示,即先读完先显示。
不过这样作出的缩略图的图像质量没有ACDSEE中的好,直到现在我都没能解决。
 
不如直接作成控件,
该控件包括image控件!
image该不须重绘了吧!
我正在做!
 
我认为一定有临时文件(存放缩略图),而且是以自定义数据库的形式存放,可以根据情况
对数据库进行更新,图像显示有双缓冲系统,减少图像更新时的屏幕闪动,
很多天没有上来,看到大家的讨论那么热烈,我很感动,希望大家集思广益,
我认为这个问题没有一个唯一的答案。但是可能会有一个最佳方案。
 
对此问题,你可以参照无双谱中的imagesee原码,很棒!!
 
to:风云再起
能否详细点?
 
找到了:http://www.delphibbs.com/delphibbs/dispq.asp?LID=450252
http://cozo.diy.163.com/ImageSeeSourceCode.zip
先谢谢风云再起,如果有启发,我会给分,并将心得与大家共享
 
那不是偶写的么?!太烂了,见笑了!
 
用ListView
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1071229
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1086652
 
我想此问题该结束了,大家深受启发,尤其是我本人,分数该怎么给呢?
现在这个问题比较起Acdsee来更让我头痛,分数实在是太少,请大家多
包涵.
总结一下(细节可以继续讨论);
1.用listview;
2.显示图像利用多线程;
3.显示用双缓冲机制防止屏幕闪烁;
4.自定义层次数据库保存目录下图像缩略图/名称/创建/修改时间.
5.虽然此问题结束,还是希望大家能够继续讨论.
 
acdsee好象是把图象文件的缩略图写入一个索引文件的 当你要打开某一张图片时它就根据索引来读入图象的所以很快啊!
所用的内存肯定就会少了
 
散分,谢谢大家
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部