读书人

Struts2 图片上传、缩放、剪切处置 第

发布时间: 2012-07-04 19:33:55 作者: rapoo

Struts2 图片上传、缩放、剪切处理 第二节

Struts2 图片上传、缩放、剪切处理 第一节


Struts2 图片上传、缩放、剪切处理 第二节


1、技术目标:

?

对上传的图片进行缩放、剪切操作

?

提示:本文示例项目已提供下载



2、处理流程:

1)在影片列表页面(films.jsp)点"修改"进入影片修改页面,如图:

?

Struts2 图片上传、缩放、剪切处置 第二节

?

2)在影片修改页面(update.jsp)中双击图片,进入图片缩放、剪切处理页面(imgscissor.jsp),如图,

?

update.jsp效果图:

?

Struts2 图片上传、缩放、剪切处置 第二节

?

imgscissor.jsp效果图:

?

Struts2 图片上传、缩放、剪切处置 第二节

3)在imgscissor.jsp页面中设置图片的缩放宽度、高度,如图,


提示:影片"刀见笑"海报图片原有尺寸为92(宽)*130(高),压缩为60 * 100


压缩前效果图:

Struts2 图片上传、缩放、剪切处置 第二节

4)在imgscissor.jsp页面中使用jQuery图片剪切插件"imgAreaSelect"对图片进行剪切操作,如图,

剪切前效果图:

?

Struts2 图片上传、缩放、剪切处置 第二节

5)采用ajax方式将图片的缩放、剪切参数提交给Action进行处理

6)服务器Action根据页面设置的参数对图片进行如下处理:

?

采用java-image-scaling-0.8.5.jar提供的功能对图片进行缩放处理采用javax.imageio以及java.awt提供的功能对图片进行剪切处理

?

7)用处理好的图片替换原有的图片,服务器Action返回处理结果,页面提示处理结果并显示处理后的图片,如图,

压缩后效果图:

Struts2 图片上传、缩放、剪切处置 第二节

剪切后效果图:

?

Struts2 图片上传、缩放、剪切处置 第二节

?

注意:第二步、第三步处理可同时进行

?

?

3、使用准备


3.1)站点根路径下创建js文件夹,导入如下js、css文件:


jquery.js? ? ? ? ?版本:v1.4.2

jquery.tooltip.css?jQuery信息提示插件样式

jquery.tooltip.js?jQuery信息提示插件

jquery.form.js?jQuery表单插件

loading.gif? ? ? ? ?进度提示图片

jquery.loadmask.css?jQuery窗口屏蔽插件样式

jquery.loadmask.js?jQuery窗口屏蔽插件

3.2)导入jQuery插件imgareaselect

在js文件夹下创建文件夹imgareaselect,imgareaselect下再创建css文件夹,imgareaselect下导入如下文件:


jquery.imgareaselect.js jQuery图片剪切插件

imgareaselect/css下导入如下文件(图片剪切插件所选样式与图片素材):


border-anim-h.gif

border-anim-v.gif

border-h.gif

border-v.gif

imgareaselect-animated.css

imgareaselect-default.css

imgareaselect-deprecated.css

提示:imgareaselect插件的详细信息可访问

http://odyniec.net/projects/imgareaselect/examples.html#fixed-aspect-ratio

3.3)导入相关的jar包

gson-1.5.jar将Java对象转换成JSON

java-image-scaling-0.8.5.jar图片压缩工具

提示:对gson的使用有兴趣的可参看

http://hotstrong.iteye.com/blog/1164379



4、给影片修改页面(update.jsp)加入如下两处代码


注意:图片的缩放、剪切操作将从update.jsp开始


4.1)导入相关js、css文件

?

?

?

?

?

提示:imgscissor.js将在后续创建


4.2)为img标签加入scissor类样式,如下:

?

?

?

?


修改后的update.jsp如下:

?

?

?

?

?

5、在js文件夹下创建imgscissor.js,用于处理"双击图片"向Action提交请求并进入图片缩放、剪切页面,代码如下:

?

?

?

?


6、在manager文件夹下创建jsp文件imgscissor.jsp(图片压缩、剪切操作页面),压缩、剪切操作完成后将参数异步发送给ImageScissorAction,代码如下:

?

?

?

?

?

7、在com.xxx.util包下创建图片处理工具类ImageUtil,提供图片的压缩(scaleImage)、剪切(scissor)处理方法,代码如下:

?

?

?

?

8、在com.xxx.web.struts.action包下创建ImageScissorAction控制器,负责接收页面参数调用ImageUtil执行图片压缩、剪切操作,代码如下:

?

?

?

?

?

9、在applicationContext-actions.xml中配置ImageScissorAction,由Spring管理,配置如下:

?

?

  牛人 

程序在
/MyBatiesTest5/src/com/xxx/web/struts/action/ImageScissorAction.java
中:


originPath = originPath.substring(originPath.indexOf("/images"));
报空指针异常, debug 下看到是originPath 没有赋值,为什么,请赐教

读书人网 >软件架构设计

热点推荐