热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

delphiAndroid创建缩略图,用Delphi实现缩略图查看

本来想投个杂志什么的,现在想来也没那个必要了。用Delphi实现缩略图查看作者:姜亮缩略图英文也叫Thumbnails,是现在的看图软件必备的基本功能之一,像ACDS

c4468b3f4df77e96b0a416fa2a870fba.png

本来想投个杂志什么的,现在想来也没那个必要了。

用Delphi实现缩略图查看

作者:姜亮

缩略图英文也叫Thumbnails,是现在的看图软件必备的基本功能之一,像ACDSee,豪杰大眼睛等图片浏览软件都提供了此功能.其实利用Delphi6.0提供的ListView和ImageList控件就可以很方便地实现该功能.下面我们就一步一步打造一个属于自己的ACDSee.

一.编程思路

ListView能够以四种不同的方式显示数据,其中当以vsIcon方式显示数据时,其图标来自于largeIcon属性指定的ImageList控件.因此,只要我们把图片缩放后动态加载到ImageList控件中,就能够以缩略图方式在ListView中显示了.需要注意的是,加载到ImageList中的图片大小尺寸必须相等;而且,为了避免图片缩放后变形,我们应该尽可能保证图片的长宽比例保持不变.我一直用"缩放"一词,这是因为对于大图片我们要缩小它,而对于小图片我们则要放大它.ACDSee就是这样做的.最后还有一个小小的问题,我们如何实现ACDSee中那些具有立体感的类似于panel的边框呢?你也许会说动态生成panel控件!这实在不是个好主意.因为那将占用大量的系统资源.我感觉 ACDSee的那些panel不是真正的panel,而是被画上去的,所以我们要自己画panel.你也许会想自己画panel很麻烦吧,开始我也这样想,但当我把这个问题搞定后,发现它简直就是一块小蛋糕.^-^ 随便把一个有panel的窗体抓下来,然后在画图软件里放大8倍后观察,你就什么都明白了.其实,一个panel就是由四条线段组成的(如图一所示)。所有的问题都解决了,那就赶快动手吧!

1.bmp(图一)

二.设计界面

新建一工程,执行以下步骤:

1。在窗体上添加一个ScrollBox1控件,设置其Align属性为alLeft。

2。在窗体上添加一个Splitter1控件,设置其width为3,Align属性为alLeft。

3。在窗体上添加一个ListView1控件,设置其Align属性为alClient,color属性为clBtnFace。

4。在ScrollBox1里添加一个ShellTreeView1控件(该控件在Samples页面上),设置其Align属性为alTop。

5。在ScrollBox1里添加一个Splitter2控件,设置其Height为3,Align属性为alTop。

6。在ScrollBox1里添加一个panel1控件,设置其Align属性为alClient。

7。在panel1上添加一个Image1控件。

完成后的界面请参考图二。

2.bmp

图二

三.编写代码

界面做好了,下面就该写代码了。

1。单元的接口部分主要代码如下:

unit Unit1;

interface

uses

...jpeg...

type

TForm1 = class(TForm)

......

private

ProgressBar1:TProgressBar;

OriginalBmp,ThumbBmp:Tbitmap;

PreViewBmp:Tbitmap;

ThumbJpg:TJpegImage;

PreViewJpg:TJpegImage;

IsRefreshImageFinished:boolean;

{ Private declarations }

public

procedure RefreshImage;

procedure ShowPreImageFit(const ImageFileName:string);

{ Public declarations }

end;

type

TImageFileList

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有



推荐阅读
author-avatar
云龙破月56
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有