jQuery圖片剪裁插件Cropper.js的使用

插件下載地址及文檔說明css

1.引入必要的js和css核心文件html

<link rel="stylesheet" href="../css/cropper.css">
<script src="../js/cropper.js"></script>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

 

2.構建html,能夠將圖片或canvas直接包裹到一個塊級元素中。small時預覽框jquery

<div class="box" style="width: 600px;height: 300px;"> 
  <img id="image" src="../images/Tom.jpg" alt="Picture">
</div>
<div class="small" style="width: 200px;height: 200px;overflow: hidden;"></div>

3.初始化插件及相關參數canvas

var image = document.getElementById("image");
        var cropper = new Cropper(image,{
            //裁剪框的比例1/1
            aspectRatio:NaN,
            //視圖模式
            viewMode:1,//0,1-,2-,3讓圖片填滿畫布
            //開啓預覽效果
            preview:'.small',
            //拖拽模式
            // dragMode:'crop',//參數:move-能夠移動圖片和框,crop-拖拽新建框
            dragMode:'move',//參數:move-能夠移動圖片和框,crop-拖拽新建框
            
            //在調整窗口大小時,會從新渲染cropper
            responsive:true,
            //在調整窗口大小時,恢復裁剪區
            restore:true,
            //檢查圖片是否爲跨域圖片
            checkCrossOrigin:true,
            //是否開啓遮罩,將未選中的地方暗色處理
            modal:true,
            //是否顯示裁剪的虛線
            guides:true,
            //將選中的區域亮色處理
            highlight:true,//默認
            //是否顯示網格背景
            background:true,
            //裁剪框是否在圖片的中心
            center:true,
            //當初始化的時候(是否自動顯示裁剪框).
            autoCrop:true,
            //當初始化時,裁剪框的大小與原圖的比例
            autoCropArea:0.8,//0.8是默認,1是1比1
            //是否容許移動圖片
            movable:true,//默認爲true
            //是否容許旋轉圖片(函數調用時)()
            rotatable:true,
            //是否容許翻轉圖片(問題)
            scalable:true,
            //是否能夠縮放圖片
         
            zoomable:true,//false爲不能放大縮小 
            //是否能夠經過觸摸的形式來放大圖片(手機端)
            zoomOnTouch:true,    

            //是否容許用鼠標來放大貨縮小圖片
            zoomOnWheel:true,
            //設置鼠標控制縮放的比例
            wheelZoomRatio:0.2,  
            
            //是否能夠移動裁剪框
            cropBoxMovable:true,//裁剪框不動,圖片動。當movable:true  
            //是否能夠調整裁剪框的大小,默認true
            cropBoxResizable:true,

            //設置dragMode 是否能夠相互切換(條件:雙擊鼠標能夠切換)
            toggleDragModeOnDblclick:true,

            //設置Container的w和h
            minContainerWidth:0,
            minContainerHeight:200,
            //設置canvas的w和h
            // canvas太大Container裝不下
            minCanvasWidth:0,
            minCanvasHeight:0,
            //設置裁剪層
            minCropBoxWidth:0,
            minCropBoxHeight:100,

            //一.crop開始-過程-結束的函數
            //1.當插件準備完成時,執行此函數
            ready:function(e){
                // alert("ready");
            },
            //2.當裁剪框開始移動的時候會執行的函數
            cropstart:function(e){
                // console.log("start");
            },
            //3.裁剪框移動的時候會執行的函數(每一幀都會調用)
            cropmove:function(e){
                // console.log("move");
            },
            //3.裁剪框移動結束的時候會執行的函數
            cropend:function(e){
                // console.log("end");
            },

            //2、重置與清除函數
            //1.在裁剪框發生變化的時候會調用的函數
            crop:function(e){
                // console.log("cropChange"); 
            }
        })
//將圖像以及裁剪重置爲初始狀態
cropper.reset();
//清除裁剪框
cropper.clear();
//替換圖片,參數1:替換的圖片,參數二,boolean是否保持原來的比例
cropper.replace("../images/picture.jpg",false);
//解鎖
cropper.enable();
//鎖定
cropper.disable();
//銷燬cropper,並在圖像中將整個cropper銷燬(將插件銷燬)
cropper.destroy();
//移動x軸座標,移動圖片.相對本身的位置
cropper.move(1,0);
//移動y軸座標
cropper.move(0,1);
//移動到x,有一個具體的座標
cropper.moveTo(2,0);
//移動到y
cropper.moveTo(0,2);
//放大
cropper.zoom(0.1);
//縮小
cropper.zoom(-0.1);

//放大到,原來的兩倍
cropper.zoomTo(2);
//縮小到
cropper.zoomTo(0.2);
//逆時針旋轉,度數
cropper.rotate(-45);
//順時針旋轉(正數)
cropper.rotate(45);

//逆時針旋轉到(正數)
cropper.rotate(-45);
//順時針旋轉(正數)
cropper.rotate(45);

//沿y軸翻轉,當前軸不變,另外一軸爲-1
cropper.scale(-1,1);

//沿x軸翻轉
cropper.scale(1,-1);
//縮放圖片x座標
cropper.scale(-1);
 //縮放圖片X座標
cropper.scaleX(0.5);
//縮放圖片Y座標
cropper.scaleY(2);

//獲取數據信息(裁剪框的數據)
console.log(cropper.getData());
//獲取數據信息(裁剪框的數據)
cropper.setData({width:200,height:100});
//獲取Container的數據信息,沒有setContainerData函數console.log(cropper.getContainerData());
//獲取image的數據信息,就是圖片大小
console.log(cropper.getImageData());
//獲取Canvas的數據信息
console.log(cropper.getCanvasData());
//設置Canvas的數據信息
            console.log(cropper.setCanvasData({left:0,top:0,width:200,height:200}));
//得到裁剪框的詳細數據
console.log(cropper.getCropBoxData());
//得到裁剪框的詳細數據
            console.log(cropper.setCropBoxData({left:0,top:100,width:00,height:200}));
//得到裁剪後的圖片,裁剪後的base64編碼 **********重要***********
$("#message").append(cropper.getCroppedCanvas());
//修改裁剪框的長寬比
cropper.setAspectRatio(1/1);
//設置拖拽模式,none,crop,move
cropper.setDragMode("crop");
//獲取canvas繪製的剪裁圖像。
在這以後,你能夠直接將canvas做爲圖片顯示,或使用canvas.toDataURL方法獲取圖像的數據連接,或者使用canvas.toBlob方法獲取一個blob,並經過FormData方法將它更新到服務器上(若是瀏覽器支持這些API)
cropper.getCroppedCanvas()
相關文章
相關標籤/搜索