我們在使用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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

