图片Java课程设计报告原代码图片查看器图片进行放大缩小左旋右旋另存彻底删除

图片缩小  时间:2021-02-21  阅读:()

湖南商学院

《面向对象程序设计》 课程设计报告题 目 图片查看器姓 名: 蒋颖颖

学 号: 070920101

专 业: 计算机科学与技术

班 级: 计科0703

指导教师: 杭 志

职 称: 讲 师

计算机与电子工程学院

2009年6月

课程设计评审表

指导教师签名 职称评审时间 年 月 日

1、课程设计概述. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .5

2、系统功能描述. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .5

3、系统需求分析与设计. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .5

3.1系统需求分析. . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . ..5

3.2系统设计. . . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . ..5

3.2. 1 系统总体设计. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . .5

3.2.2 程序详细设计. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . . . . . . . .. . . . . .. . . . .6

4、系统测试和使用说明. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .9

4.1系统测试. . . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . ..9

4.2系统使用说明. . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .11

5、课程设计总结. . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .11

5.1遇到的问题和解决方法. . . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . . . . . . . .. . . . . .. . . . . .. . . . .11

5.2心得体会. . . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . .11

参考文献. . . . . . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .11

附录. . . . . . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . .12

图片查看器

1、课程设计概述

为提高学生理论与实践相结合的能力计电学院于 2009年6月开展了为期两周的面向对象课程设计针对对象为 07级全体计科专业学生。本次实践教学采用学生集中在学校网络机房上机指导老师指导的形式。要求学生用所学的面向对象程序设计语言

——JA VA来编写程序实现特定功能 以加深对面向对象程序设计这个概念的理解。

2、系统功能描述

本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片

文件并且可以对选择的图片进行放大缩小左旋右旋 另存彻底删除等操作。

3、系统需求分析与设计

3.1系统需求分析

随着数字产品渐进人们的生活 网络通信技术、 图像处理技术以及多媒体技术的发展越来越多的用户希望能够对已有的数字图片进行查看并能够实现简单的操作。本图

片查看器以其简洁明了易操作的特点实现图片查看的基本功能 从而也就满足了用户的基本要求。

3.2系统设计

3.2.1系统总体设计

 1系统功能分析

本系统要用到以下的 Java编程技术实现的功能

图像显示功能 客户需要显示图片 这将由图像显示功能来完成。 显示图片的时候用到了双缓冲技术来消除闪烁问题。

 2类图

系统中用到了一些基本类、实现了一些接口。系统所用到的类如图 1所示

图1系统类图

3.2.2程序详细设计

 1程序中引用的类

①JPanel类

程序中定义了三个Jpanel类分别是 pathBar,pic Container,ctrBar用于图片查。看器的整体布局。其中pathBar为顶部路径栏 p ic Container为图片显示区域 ctrBar为底部控制栏。

②JLabel类

程序中定义了类名为 p athIn fo的J Lab e l类用于实现顶部路径栏 底部控制栏按钮的文字显示。

③JButton类

程序中定义了多个 JButton类 openbtn,prebtn,nextbtn,zoominbtn,zoo moutbtn,orip icbtn,anglele ftbtn,anglerightbtn,exitbtn,deletebtn,sav;查看器的按为钮。

④Image类

程序中定义了名为p ic的Image类用于对被查看的图片的操作。

⑤Buffe redImage类

此类为用于显示的缓冲区图像。在对图像进行操作前都先将图片读进预设的缓冲

区然后再显示在用户前端这样虽然速度慢了点但很好的消除了图片闪烁效果。

⑥Grap h ic s 2D类

此类与上面的Buffe redImage类共同作用通过运用双缓冲技术很好的消除屏闪问

题。

⑦String类

程序中运用了三个不同的 String类从而实现了需要查看的图片的路径的操作并且在启动图片查看器时 图片的路径能够在路径栏显示出来。 同时还设置了String数组用于存储用户选定的目录下所有指定格式的图片这样可以实现循环浏览图片等操作。

 2程序的构造方法及其实现

因为图片查看器可以实现对图片不同的操作 程序中构造了十多个方法以达到其目的。各构造方法相互联系共同完成图片查看器的各项功能。各个方法描述如下

①public void init()

本方法实现了对图片查看器的界面的整体布局及按钮的初始化。 对页面的总体布局采用了 以下主要代码进行实现 setLayout(new BorderLayout());add(pathBar,

BorderLayout.NORTH); add(picContainer, BorderLayout.CENT ER); add(ctrBar,BorderLayout.SOUT H); res ize(640,400);设置顶部路径栏 及其文字显示 代码如pathBar=new JPanel() pathBar.setLayout(new BorderLayout())  pathInfo.setText("图片查看器");pathBar.add(pathInfo);同时对图片显示区域 底部的控制栏的设置也运用了相似的代码进

行实现 在此就不再重复。 各按钮除了“打开”一按钮外 其他的各按钮均设置为fals e。这是因为只有“打开”图片后才能进行以下的像循环浏览旋转删除等操作。具体方

法的实现见附件。

②public void actionPerformed(ActionEvent)

在本方法中主要实现了用户对底部控制栏各按钮的点击后 图片查看器进行的相对应的操作反应。 方法中一开始用JButton clic k=(JButton)e.getSource();取按键源获然后

根据c lick与程序设定的已知的类进行比较决定进行相应的反应。 if(clic k==openbtn)if(clic k==prebtn&&p ic !=null) 等一系列进行判断后进行或是打开文件 op en()方法的调用;或是p re()方法的调用;其他各操作也大同小异在此就不再赘述。方法的详细代

码见附件。

③public void open()

该方法实现了对用户选定的文件路径下的后缀为 .jpg的图片文件的打开操作。 同时能够对该路径下的一切符合条件的文件进行跟踪处理。方法中的核心在于一个过滤操

作 FileNameExtensionFilter filter=new FileNameExtensionFilter("*.JPG", "jpg");这样就能

实现.jp g文件的浏览了。在选定了图片后相应的按钮值应该被赋值为 ture,以便进行其他的操作。若没有选定图片则显示“没有选择图片” 。

④public void save()throws IOException

该方法是为了满足用户希望对图片进行另外存储的操作 通过用户自己的选择重新选定图片的存储路径。详细实现见附件中代码。

⑤public void pre()及public void next()

Pre与n e xt方法实现了对当前图片的上一张下一张的浏览。 因为在第一次打开文件

时就将该路径下所有符合要求的图片存储在 String[]pics中。通过 if(i==0) { i=pics.length-1;}els e { i --;}其中i为当前的图片位置数。 通过d ir=path+"\\"+pics[i];获得文件的路径然后调用 loadImage(dir);此方法将在后面介绍与上面的方法相对应的是此方法实现了对当前图片下一张的浏览 实现原理与上相同 if(i==pic s.length-1) {i=0;}else {i++;}通过调用loadImage(dir);一方法实现。

⑥public void picTrans()

如果bufImage为空则直接返回之后进行过滤图像操作 2D仿射变换设置仿射变换的比例因子 trans form.setToScale(scaleX, scaleY);创建仿射变换操作对象过滤图

像将目标图像存在filteredBufImage中然后显示。

⑦public void zoomin()

此方法实现了对当前的图片进行按设置比例缩小操作。在进行缩小操作前先对图

片的大小进行判断 看是否已经缩小到最小 若最小则显示提示信息“已经缩至最小 ” 否则进行缩小操作。 在此过程中调用了p ic Tran s()方法 以及rep a int();重绘组件的方法。

⑧public void oripic()及public void delete()

方法实现了将放大或缩小后的图片大小还原的操作。 同时也调用了 p ic Tran s()方法以及rep aint();重绘组件的方法。具体的 p icTrans()方法将在下面详细描述。此方法具体实现见附件 public void de lete()方法将图片彻底删除删除后图片彻底被粉碎 回收站

里面都不能找到。因此要慎用此按钮。

⑨public void anglele ft()及public void angleright()

方法每次对图片进行 45°的向左向右的旋转操作。 radius+=-Math.PI /2;用以控制而这些操作后每次都应 oripicbtn.s etEnabled(true)也就是要将还原按钮赋值为真。

⑩public void loadImage(String fileName)及public void exit()

前一个方法通过增加图像到加载器中创建原始缓冲区图像创建 bufImage的图形环境 bufImage G=bufImage.c reate Graphics();输源图像传数据到缓冲区图像中一些列

的操作对图片进行了加载操作 public void exit()方法是退出查看器的方法。

4、系统测试和使用说明

4.1系统测试

使用eclipse运行程序时 会出现applet小程序的界面。 并显示程序已启动。 显示如图2

图2 程序开始时的界面

天上云:香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路

天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...

HostKvm四月优惠:VPS主机全场八折,香港/美国洛杉矶机房$5.2/月起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...

台湾CN2云服务器 2核2G 5M 5IP 台湾物理服务器 E5x2 64G 20M 5IP

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

图片缩小为你推荐
赛我网赛我网的号自己能封吗?免费开通黄钻如何免费开通qq黄钻吴晓波频道买粉《充电时间》的节目跟《吴晓波频道》哪个好听?1433端口如何打开SQL1433端口硬盘人500G的硬盘容量是多少啊?xp系统停止服务xp系统停止服务怎么办?安装迅雷看看播放器怎样安装迅雷看看播放器免费免费建站电脑上有真正免费的网站吗??宕机人们说的宕机是什么意思iphone6上市时间苹果6什么时候在中国大陆上市
江西服务器租用 3322免费域名 美国主机排名 sugarhosts duniu dreamhost 阿里云浏览器 腾讯云分析 有奖调查 国外代理服务器软件 可外链相册 支付宝扫码领红包 paypal注册教程 360云服务 德讯 免费蓝钻 工信部icp备案查询 阿里云邮箱登陆 石家庄服务器 weblogic部署 更多