我們在使用QQ空間或者開心網等網站的個人中心時,有個上傳個人頭像的功能。用戶在上傳自己的照片后,由于照片尺寸不符合網站的要求,要求用戶對照片進行裁剪,最終根據用戶裁剪的尺寸生成頭像。
?
最近在項目中也要用到這樣的功能,用戶可以對上傳的圖片進行自由縮放、裁剪,使之符合彩信圖片的大小。于是,發現了CropZoom。
?
CropZoom特性
CropZoom是由Gaston Robledo寫的一個功能非常強大的jquery圖片裁剪插件,它具有以下主要特性:
1、任意放大和縮小圖片
2、360度旋轉照片
3、自由拖動,自定義選擇區樣式
4、及時顯示裁剪后的照片,可以與后臺程序PHP、JAVA、Asp.net等通信
5、兼容IE6+,fireFox2+,Opera,Safria
?
使用CropZoom
該插件需要JQuery UI的ui.droppable, ui.resizable, ui.slider支持。因此在使用之前先要準備相關文件。 jquery.js 可以在jquery官方網站上下載。 JQuery UI 可以在官方下載。
?
1、導入JS和CSS樣式。
<link href="css/jquery-ui-1.8.custom.css" rel="Stylesheet" type="text/css" /> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script> <script type="text/javascript" src="js/jquery.cropzoom.js"></script>
?
2、構建HTML結構代碼。
<div class="crop"> <div id="cropzoom_container"></div> <div id="preview"><img id="generated" src="tmp/head.gif" /></div> <div class="page_btn"> <input type="button" class="btn" id="crop" value="剪切照片" /> <input type="button" class="btn" id="restore" value="照片復位" /> </div> <div class="clear"></div> </div>
?
這部分的樣式大家可以自己定制,也可以參照月光光寫的DEMO。
?
3、調用CropZoom插件。
$(function() { var cropzoom = $('#cropzoom_container').cropzoom({ width: 500, height: 360, bgColor: '#ccc', enableRotation: true, enableZoom: true, selector: { w:150, h:200, centered: true, bgInfoLayer:'#fff', borderColor: 'blue', borderColorHover: 'yellow' }, image: { source: 'photo.jpg', width: 450, height: 800, minZoom: 30, maxZoom: 150 } }); $("#crop").click(function(){ cropzoom.send('crop_img.php', 'POST', {}, function(imgRet) { $("#generated").attr("src", imgRet); }); }); $("#restore").click(function(){ $("#generated").attr("src", "tmp/head.gif"); cropzoom.restore(); }); });
?
CropZoom插件主要參數和方法一覽表
參數/方法 | 描述 | 默認值 |
基本 | ||
width | 整個圖片容器的寬度 | 640 |
Height | 整個圖片容器的高度 | 480 |
bgColor | 容器的背景色 | #000 |
overlayColor | 當拖動選區(選擇區域)時容器的背景色 | #000 |
enableRotation | true/false,是否顯示角度調節控件 | true |
enableZoom | true/false,是否顯示縮放控件 | true |
restore | 方法,重置、復位圖片和插件參數 | ? |
send |
方法,向服務端發送裁剪圖片的數據,以便服務端接收參數進行處理,
e.g: cropzoom.send('process.php','POST',{id=1},function(r){ alert(r); }); |
? |
選區參數 | ||
width | 選區的寬度 | 229 |
height | 選區的高度 | 100 |
borderColor | 選區邊框的顏色 | yellow |
borderColorHover | 當鼠標滑向選區時,選區邊框的顏色 | red |
Centered | 是否將選區居中,即顯示在容器的中心。 | false |
圖片參數 | ||
source | 圖片的路徑 | ? |
rotation | 圖片的初始角度 | 0 |
width | 圖片的寬度 | 0 |
height | 圖片的高度 | 0 |
minZoom | 圖片的最小縮放率(百分比) | 10 |
maxZoom | 圖片的最大縮放率(百分比) | 150 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
