我們在使用QQ空間或者開心網(wǎng)等網(wǎng)站的個(gè)人中心時(shí),有個(gè)上傳個(gè)人頭像的功能。用戶在上傳自己的照片后,由于照片尺寸不符合網(wǎng)站的要求,要求用戶對照片進(jìn)行裁剪,最終根據(jù)用戶裁剪的尺寸生成頭像。
?
最近在項(xiàng)目中也要用到這樣的功能,用戶可以對上傳的圖片進(jìn)行自由縮放、裁剪,使之符合彩信圖片的大小。于是,發(fā)現(xiàn)了CropZoom。
?
CropZoom特性
CropZoom是由Gaston Robledo寫的一個(gè)功能非常強(qiáng)大的jquery圖片裁剪插件,它具有以下主要特性:
1、任意放大和縮小圖片
2、360度旋轉(zhuǎn)照片
3、自由拖動(dòng),自定義選擇區(qū)樣式
4、及時(shí)顯示裁剪后的照片,可以與后臺(tái)程序PHP、JAVA、Asp.net等通信
5、兼容IE6+,fireFox2+,Opera,Safria
?
使用CropZoom
該插件需要JQuery UI的ui.droppable, ui.resizable, ui.slider支持。因此在使用之前先要準(zhǔn)備相關(guān)文件。 jquery.js 可以在jquery官方網(wǎng)站上下載。 JQuery UI 可以在官方下載。
?
1、導(dǎo)入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、構(gòu)建HTML結(jié)構(gòu)代碼。
<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="照片復(fù)位" /> </div> <div class="clear"></div> </div>
?
這部分的樣式大家可以自己定制,也可以參照月光光寫的DEMO。
?
3、調(diào)用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插件主要參數(shù)和方法一覽表
參數(shù)/方法 | 描述 | 默認(rèn)值 |
基本 | ||
width | 整個(gè)圖片容器的寬度 | 640 |
Height | 整個(gè)圖片容器的高度 | 480 |
bgColor | 容器的背景色 | #000 |
overlayColor | 當(dāng)拖動(dòng)選區(qū)(選擇區(qū)域)時(shí)容器的背景色 | #000 |
enableRotation | true/false,是否顯示角度調(diào)節(jié)控件 | true |
enableZoom | true/false,是否顯示縮放控件 | true |
restore | 方法,重置、復(fù)位圖片和插件參數(shù) | ? |
send |
方法,向服務(wù)端發(fā)送裁剪圖片的數(shù)據(jù),以便服務(wù)端接收參數(shù)進(jìn)行處理,
e.g: cropzoom.send('process.php','POST',{id=1},function(r){ alert(r); }); |
? |
選區(qū)參數(shù) | ||
width | 選區(qū)的寬度 | 229 |
height | 選區(qū)的高度 | 100 |
borderColor | 選區(qū)邊框的顏色 | yellow |
borderColorHover | 當(dāng)鼠標(biāo)滑向選區(qū)時(shí),選區(qū)邊框的顏色 | red |
Centered | 是否將選區(qū)居中,即顯示在容器的中心。 | false |
圖片參數(shù) | ||
source | 圖片的路徑 | ? |
rotation | 圖片的初始角度 | 0 |
width | 圖片的寬度 | 0 |
height | 圖片的高度 | 0 |
minZoom | 圖片的最小縮放率(百分比) | 10 |
maxZoom | 圖片的最大縮放率(百分比) | 150 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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