图片在线裁剪(jQuery + HttpHandler)源码
2015-10-09 15:10
531 查看
简单说明:
Cutter为裁剪对象, 用于存储客户端通过AJAX提交的数据。
Helper为图片处理类, 包括图片翻转(RotateImage()), 图片裁剪(GenerateBitmap())。
Callback为服务器端图片处理类, 通过使用Cutter封装客户端AJAX提交的数据, 然后调用Helper中的方法来完成图片处理。
BitmapScissors是一个HttpHandler, 通过客户端返回的 'action' 来调用Callback中的方法。
客户端AJAX提交的Url为"scissors.axd", 实际为BitmapScissors类(如修改了服务器端处理程序, 请在Web.config中根据实际进行httpHandler节点配置), 为了便于代码管理及功能优化, 将功能进行了归纳, 大致可分为:
缩放(zoom): 细分为放大和缩小,
翻转(rotate): 细分为顺时针和逆时针,
移动(move): 细分为上|右|下|左平移.
所以直接编写三个 '基类' (具体实现看源码):
izoom(zv): 提供图片放大或缩小功能, zv为当前缩放比,
irotate(angle): 提供图片旋转功能, angle为当前旋转角度,
imove(direction): 提供原图平移功能, direction为移动方向, 包括'left','up','right','down'.
图片效果:
实例下载地址1:http://down.51cto.com/data/2103770
实例下载地址2:http://download.csdn.net/detail/lovegonghui/9166343
Cutter为裁剪对象, 用于存储客户端通过AJAX提交的数据。
Helper为图片处理类, 包括图片翻转(RotateImage()), 图片裁剪(GenerateBitmap())。
Callback为服务器端图片处理类, 通过使用Cutter封装客户端AJAX提交的数据, 然后调用Helper中的方法来完成图片处理。
BitmapScissors是一个HttpHandler, 通过客户端返回的 'action' 来调用Callback中的方法。
客户端AJAX提交的Url为"scissors.axd", 实际为BitmapScissors类(如修改了服务器端处理程序, 请在Web.config中根据实际进行httpHandler节点配置), 为了便于代码管理及功能优化, 将功能进行了归纳, 大致可分为:
缩放(zoom): 细分为放大和缩小,
翻转(rotate): 细分为顺时针和逆时针,
移动(move): 细分为上|右|下|左平移.
所以直接编写三个 '基类' (具体实现看源码):
izoom(zv): 提供图片放大或缩小功能, zv为当前缩放比,
irotate(angle): 提供图片旋转功能, angle为当前旋转角度,
imove(direction): 提供原图平移功能, direction为移动方向, 包括'left','up','right','down'.
图片效果:
实例下载地址1:http://down.51cto.com/data/2103770
实例下载地址2:http://download.csdn.net/detail/lovegonghui/9166343
相关文章推荐
- http 301 和 302的区别
- iOS9 HTTP 不能正常使用的解决办法
- Linux单机最大tcp连接数(★firecat推荐★)
- HTTP使用BASIC认证的原理及实现方法
- android http获取服务器端的数据
- file_get_contents 无法读取https
- 十年一遇的奇葩故障--Windows网络编程接口故障:telnet显示无法加载或初始化请求的服务提供程序
- delphi TcpClient和TClientSocket
- 单引号引发的[object XMLHttpRequest]错误
- 远程网络重装物理服务器的Linux系统
- myeclipse项目导入到eclipse, HttpServletRequest报红现象
- HttpClient 4.3教程(转载)
- HttpClient 4.3教程(转载)
- netty TCP server心跳机制
- Select网络模型
- 通过httpclient调用webservice
- Xen 和 KVM 下如何关闭 virbr0
- lvs & keepalived的tcp 长连接的问题解决办法
- Android学习笔记之AndroidManifest.xml文件解析http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html
- ios9 http不能用问题