基于Extjs的相册系统设计
2007-11-27 11:44
330 查看
基于Extjs的相册系统设计
一、系统结构
系统结构分为四大部分:
1、 图片管理器(PhotoManage),图片分类管理、图片目录管理、图片上传控件。
2、 图片浏览器(PhotoSee),类似于ACDSee,键盘的四个方向键分别控制上一页、下一页、放大和缩小。可以对每幅图片添加备注,显示图片的Exif信息,对图片进行评论等。
3、 图片搜索引擎(PhotoSearch),可以对图片备注、图片标题、图片的Exif信息进行搜索。
4、 后台管理器(Web Management),对用户帐号、密码等进行管理。
二、系统设计
重点说一下图片上传控件、图片浏览器和图片搜索的实现。
1、图片上传控件。图片上传控件采用JavaApplet编写,以JNLP的方式发布。首先用JavaApplet编写一个图片浏览器(如图1)方便挑选要上存的图片。使用FTP方式上传,FTP服务器端使用Apache 的开源项目FTPServer,上传的时候先生成图片的缩略图,图片名随机生成。图片上传到FTP服务器后还要将图片的信息(如路径、名称、Exif信息等)提交服务器,最后要使JavaApplet浏览本地的图片文件就要使用数字签名。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/yowen/1.JPG)
图1
2、图片浏览器是基于Extjs编写的,浏览器的窗口采用左右布局,左边是图片的信息,导航栏等,右边是图片浏览区。图片的显示采用Ajax技术,实现不刷屏显示图片,每显示一幅图片都执行一次CreatPhoto()函数。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/yowen/2.JPG)
function CreatPhoto(){ // 创建IMG,每开一幅图运行一次
oldImg = objDivImg.firstChild; //<old img>
objDivImg.removeChild(oldImg); // 删除旧的IMG
objDivImg.style.visibility = "hidden";
objImg = document.createElement("img");
objImg.onload = function(){
originalWidth = objImg.width ;
originalHeight = objImg.height;
if (isFitScreen){
creatFitScreen();
}else{
creatOriginalScreen();
}
onGetRemark(gAlbumInfo[photoIndex][2]);
objDivImg.style.visibility = "visible";
};
if (Ext.isIE){ // 设置图片移动 设置position : absolute ; 才可以移动
objImg.setAttribute("className","ImgMain");
}else{
objImg.setAttribute("class","ImgMain");
}
objDivImg.appendChild(objImg); // 创建新的IMG
objImg.src = COMMON_PICS_DIR + gAlbumInfo[photoIndex][1] + '/' + gAlbumInfo[photoIndex][0];
}
一、系统结构
系统结构分为四大部分:
1、 图片管理器(PhotoManage),图片分类管理、图片目录管理、图片上传控件。
2、 图片浏览器(PhotoSee),类似于ACDSee,键盘的四个方向键分别控制上一页、下一页、放大和缩小。可以对每幅图片添加备注,显示图片的Exif信息,对图片进行评论等。
3、 图片搜索引擎(PhotoSearch),可以对图片备注、图片标题、图片的Exif信息进行搜索。
4、 后台管理器(Web Management),对用户帐号、密码等进行管理。
二、系统设计
重点说一下图片上传控件、图片浏览器和图片搜索的实现。
1、图片上传控件。图片上传控件采用JavaApplet编写,以JNLP的方式发布。首先用JavaApplet编写一个图片浏览器(如图1)方便挑选要上存的图片。使用FTP方式上传,FTP服务器端使用Apache 的开源项目FTPServer,上传的时候先生成图片的缩略图,图片名随机生成。图片上传到FTP服务器后还要将图片的信息(如路径、名称、Exif信息等)提交服务器,最后要使JavaApplet浏览本地的图片文件就要使用数字签名。
图1
2、图片浏览器是基于Extjs编写的,浏览器的窗口采用左右布局,左边是图片的信息,导航栏等,右边是图片浏览区。图片的显示采用Ajax技术,实现不刷屏显示图片,每显示一幅图片都执行一次CreatPhoto()函数。
function CreatPhoto(){ // 创建IMG,每开一幅图运行一次
oldImg = objDivImg.firstChild; //<old img>
objDivImg.removeChild(oldImg); // 删除旧的IMG
objDivImg.style.visibility = "hidden";
objImg = document.createElement("img");
objImg.onload = function(){
originalWidth = objImg.width ;
originalHeight = objImg.height;
if (isFitScreen){
creatFitScreen();
}else{
creatOriginalScreen();
}
onGetRemark(gAlbumInfo[photoIndex][2]);
objDivImg.style.visibility = "visible";
};
if (Ext.isIE){ // 设置图片移动 设置position : absolute ; 才可以移动
objImg.setAttribute("className","ImgMain");
}else{
objImg.setAttribute("class","ImgMain");
}
objDivImg.appendChild(objImg); // 创建新的IMG
objImg.src = COMMON_PICS_DIR + gAlbumInfo[photoIndex][1] + '/' + gAlbumInfo[photoIndex][0];
}
相关文章推荐
- 基于AJAX技术的WebGis系统实践 (2. 三维城市地图系统设计)
- 基于SOA的设备智能维护系统架构设计及实现
- 基于AT89S51的新型家庭语音报警系统设计
- 基于RBAC模型的权限设计:如何设计系统权限体系?
- 基于SOA的体系架构设计-全球酒店在线预订系统
- 十年经验教你如何学习嵌入式系统(基于AR-电子系统设计论坛)
- 基于Hadoop开发网络云盘系统架构设计方案
- [设计]基于ARM9与Linux系统的数控切割机
- 权限设计学习篇--BlueDavy之技术Blog - 漫谈权限系统之技术策略以及基于RBAC ...
- 服务器路由器基于ARM+LINUX的无线视频采集系统设计----------项目整体介绍
- 操作系统课程设计 基于DOS的多任务系统的实现
- 基于ARM LPC2210的以太网RTL8019AS驱动系统设计(一)
- 基于ACCESS在线考试自动组卷系统设计
- 基于分布式环境下限流系统的设计
- 基于Hadoop、HBase的数据分析挖掘管理平台-舆情预警监控系统 (系统总体设计图)
- 基于反向代理的Web缓存加速——可缓存的CMS系统设计
- 基于.NET平台和Cache数据库的结构化电子病历系统设计
- 基于社区医疗系统的spring+mybatis架构设计流程----登录
- 【转】谈基于SOA的应用系统设计和开发
- 基于Redis的限流系统的设计