Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择
jquery imgAeraSelect插件地址:
软件名称: | jQuery图表插件jQchart |
软件大小: | 311KB |
下载地址: | http://www.pc6.com/softview/SoftView_51617.html |
原理很简单,就是将鼠标框住的区域两个定点坐标值传回服务器端,在服务器端用image magick处理。
由于rmagick存在内存泄露问题。这里选择了mini_magick。mini_magick是一个非常小的库,源代码不过300行。主要是通过调用系统命令行来处理图片。只要系统安装了image magick就可以。
view:主要是加四个隐藏域来传递裁剪区域。在form提交时候一起传递到服务器。
初始化裁剪框在待处理图片的中央和一些验证:
后台处理,主要就是做以下几件事情:
1.把上传来的照片压缩到200x200
2.通过content-type判断图片是否合法。以防用户自己改扩展名。
3.把gif和png格式转换成jpg,不然在裁剪时候后出问题。
4.裁剪
5.把裁剪后图片缩放成几种比例
def upload_avatar if request.post? avatar_200_200 = RAILS_ROOT + "/public/files/avatar/200_200/" photo_name = "#{current_user.hash_id}.jpg" avatar_100_100 = RAILS_ROOT + "/public/files/avatar/100_100/" avatar_64_64 = RAILS_ROOT + "/public/files/avatar/64_64/" avatar_50_50 = RAILS_ROOT + "/public/files/avatar/50_50/" avatar_40_40 = RAILS_ROOT + "/public/files/avatar/40_40/" if params[:commit] == "上传照片" #TODO Validate Image Size! #TODO 增加白色背景,以防不规则图片! photo = params[:photo] raise "image type Error!" if photo.content_type !~ /^image\/.*?jpeg|jpg|png|bmp|gif$/i Dir.chdir avatar_200_200 img = MiniMagick::Image.from_blob(photo.read) img.format("jpg") if photo.content_type =~ /gif|png$/i img.resize "200x200" img.write photo_name redirect_to request.referer elsif params[:commit] == "保存设置" Dir.chdir avatar_200_200 if File.exist?(photo_name) width = params[:x2].to_i - params[:x1].to_i height= params[:y2].to_i - params[:y1].to_i img = MiniMagick::Image.open(photo_name) img.crop "#{width}x#{height}+#{params[:x1]}+#{params[:y1]}" img.resize 100 and Dir.chdir avatar_100_100 and img.write photo_name img.resize 64 and Dir.chdir avatar_64_64 and img.write photo_name img.resize 50 and Dir.chdir avatar_50_50 and img.write photo_name img.resize 40 and Dir.chdir avatar_40_40 and img.write photo_name end end end end
效果预览:
相关视频
相关阅读 jdk不是有效的win32程序怎么办 jdk不是有效的win32程序解决方法java设置cookie教程 java怎么设置cookiejava怎么设置随机数 java设置随机数详细教程java怎么设置光标位置 java设置光标位置教程如何在Mac上清除Java高速缓存?如何在Mac上卸载Java?Mac上怎么卸载Java?OSX 10.11 java 6不兼容问题解决办法如何为Mac更新Java?java mac版更新教程
热门文章 Wordpress本地安装教程dx1.5如何设置二级域名
最新文章
hbuilder有哪些快捷键Wordpress本地安装教程
Wordpress本地安装教程expression web 4文档乱码解决方法dz 2.5“收藏本版”关闭小对话框无法关闭解在制作安装软件之前,您必须先将易语言存盘,
人气排行 如何使用multipart/form-data格式上传文件Photoshop PS图层混合模式详解(非常详细)ISAPI_Rewrite3使用教程网站里添加收藏和设为首页代码桌面快捷方式图标不见了C#获取执行程序所在的当前路径的方法详解(XMLHttpRequest)进行跨域请求方法如何用远程桌面连接进行传输文件
查看所有0条评论>>