图表原型说明书

来源:百度文库 编辑:神马文学网 时间:2024/06/12 21:10:25
内容:
一.总述
二.Ajax数据传递
三.servlet数据处理
四.图表处理
一.总述
1.本项目提供按照指定缩放倍数对图片的放大、缩小操作;提供按照指定旋转角度旋转图片的操作,可以支持的角度有90度,180度和270度;提供对图片的剪切操作;提供在图片处理后图片宽度的控制,以防止出现如长条形状图片缩放后宽度超出文档边界的情况发生.
2.本原型前台部分使用Ajax发送请求数据,其中包括客户端中被处理的图片的地址,和操作图片的值,如缩放倍数,旋转角度等.这些数据又Servlet接收并调用相关业务方法进行处理.然后再将结果返回到页面上显示.
3.ServletTest类将接受Ajax传递过来的操作类型参数:1为放大,2为缩小,3为旋转,4为剪切.根据这些参数来调用ImgProcess类的相关方法对图片进行处理.
4.类ImgProcess是个单例类,提供将Servlet提供的地址字符串拼接成url的操作,然后用这些url作为参数调用相关图片处理功能方法.
5.程序系统结构:
主页面: index.html
servlet:ServletTest类
ajax:Bai_ajax.js
图片处理: PicRot类
二.Ajax数据传递
一 .AJAX 定义 :
AJAX(AsynchronousJavaScriptandXML)其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest。
二.对象及方法说明:
1.sendRequest_Scale:
功能:
a.生成XMLHttpRequest对象,
b.发送数据,
c.返回servlet端修改后图片的路径.
sendRequest_Scale("/Demo/test"+"?time="+newDate().getTime(),eventTypeKey,eventTypeValue,arrayKey,arrayValue,img_localKey,imgValue,"post");
参数说明:
第一个参数为 提交请求的URL.如"/Demo/test"+"?time="+newDate().getTime()
第二个参数为eventTypeKey的KEY值.
第三个参数为eventTypeValue,在服务端取得的eventTypeKey的 对应的VALUE值
第四个参数为 arrayKey,可以为“ 放大、缩小、旋转、剪切 ”4个的KEY表示值,
第五个参数为 arrayValue,在服务端取得的“放大、缩小、旋转、剪切”的KEY表示值分别对应的VALUE值
第六个参数为img_localKey的KEY表示值。
第七个参数为imgValue是图片的地址。在服务端取得的img_localKey的对应的VALUE值,即图片的地址。
第八个参数为 "post"、“get”或者"Head"
2.XMLHttpRequest对象的方法:
req.open(HttpMethod,url,true);设置未决的请求的方法,目标URL,和其他参数
参数说明:
HttpMethod:HTTP请求的方法,为Get、Post或者Head
url:目标URL
true:指定在等待服务器返回信息的时间内是否继续执行下面的代码。如果为True,则不会继续执行,直到服务器返回信息。默认为True。
req.send(data);发送请求,将数据发送出去。
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
设置header并和请求一起发送
3.sendRequest_Scale函数体说明:
a.initXMLHTTPRequest():生成XMLHttpRequest对象。
b.req.open(HttpMethod,url,false):设置未决的请求的方法,目标 URL,和其他参数
c.req.send(data):发送请求,将数据发送出去。
d.req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
设置header并和请求一起发送
e.myPost_pass(eventTypeKey,eventTypeValue,arrKey,arrValue,img_localKey,imgValue,req);
f.myPost_pass函数封装了req.send(data),发送请求将数据发送到服务端。
g.data=req.responseText;服务器进程返回数据的文本流。
h.returndata;得到服务器端处理后的图片文件的URL串。
三.servlet数据处理
一.servlet接受前台信息:
1.servletTest类:
提供了dopost()方法得到页面中用户操作的key值。
调用ImgProcess的静态方法ImgProcess(src,basePathSrc,localKeyValue)。
参数说明:
src:图片的相对地址 .
basePathSrc:图片的绝对地址 .
LocalKeyValue:是用户的操作类型判断用户的操作是哪一类型:1(放大)、2(缩小)、3(旋转)、4(剪切)。调用相应的方法。
二.servlet调用后台方法:
1.PicRot类:提供了功能实现类
2.ImgProcess类:
在imgProcess类调用了PicRot的方法。
ImgProcess的静态方法ImgProcess(src,basePathSrc,localKeyValue)。
参数说明:
src:图片的相对地址 .
basePathSrc:图片的绝对地址
localKeyValue:是用户的操作类型.
reduceShow(),blowUpShow()中的参数:
sourceImage:源图片的地址
resultImage:目标图片的地址
picMaxWidth:图片缩放后的最大宽度限制
scaleMultiple:缩放倍数
scaleType:缩放类型:1为放大,2为缩小
clipShow方法中的参数:
sourceImage:源图片的地址
resultImage:目标图片的地址
RotateShow方法中的参数:
sourceImage:源图片的地址
resultImage:目标图片的地址
rotataAngle:旋转的角度
picMaxWidth:图片旋转后的最大宽度限制
四.图象处理
一.图象处理部分提供三个方法:
1.ImageRotate提供图片的旋转功能,能按90度,180度,270度进行旋转.
2.ImageScale提供图片的放大和缩小功能,能俺照指定倍数进行放大和缩小.
3.ImageClip提供图片的剪切功能,能按照给定的一个矩形坐标对图片进行剪切.
二.图象处理部分方法说明:
1.ImageRotate:
图片旋转代码:提供图片90度、180度、270度旋转,返回图片 处理后存储位置的url.
参数说明:
sourceImage:源图片的地址
resultImage:目标图片的地址
rotataAngle:旋转的角度
picMaxWidth:图片旋转后的最大宽度限制
2.ImageScale:
图片缩放代码:提供图片的放大与缩小,返回图片处理后存储位置 的url.
参数说明:
sourceImage:源图片的地址
resultImage:目标图片的地址
picMaxWidth:图片缩放后的最大宽度限制
scaleMultiple:缩放倍数
scaleType:缩放类型:1为放大,2为缩小
3.ImageClip:
图片剪切代码:提供根据一个通过给定的矩形坐标剪切图片的功能, 返回图片处理后存储位置的url.
参数说明:
sourceImage:源图片的地址
resultImage:目标图片的地址
三.图象处理部分流程:
1.调用ImageIO类读取源图片路径,得到这个源图片的BufferedImage对象.
2.然后调用java2D的AffineTransform类对其进行转换,或者是使用.CropImageFilter类对图片进行裁剪.
3.再使用Graphics类对图象进行绘制.
4.最后调用ImageIO类得到输出流,输出修改后图片.