vue中使用cropperjs的方法

  

用vue的项目里需要对图片进行裁剪,于是使用了cropperjs,在使用的过程中也踩过一些坑,以下是在.vue文件里cropperjs的使用方法和经验教训总结:

  

在使用之前,先引入:

  

 vue中使用cropperjs的方法

  

在项目里,运行:

        npm安装cropperjs保存      

在模板里:

        & lt; div id=把菔尽北?   & lt; !——遮罩层——比;   & lt; div类="容器" v-show=懊姘濉北?   & lt; div>   & lt; img id=巴枷瘛?src=" https://www.yisu.com/zixun/url " alt=巴计北?   & lt;/div>   & lt;按钮类型="按钮" id="按钮" @click=白魑铩弊4侨范? lt;/button>   & lt;/div>   & lt; div比;   & lt; div类="显示"比;   & lt; div类=罢掌?在   & lt;/div>   & lt;/div>   & lt; div比;   & lt;输入类型="文件" id=案谋洹苯邮?巴枷瘛盄change=案谋洹北?   & lt;标签=案谋洹弊4? lt;/label>   & lt;/div>   & lt;/div>   & lt;/div>之前      

 vue中使用cropperjs的方法

  

js代码:

        从“cropperjs”进口收割机   出口默认{   组件:{   },   数据(){   返回{   headerImage:”,   picValue:”,   收割机:”,   croppable:假的,   面板:假的,   url:“   }   },   安装(){//初始化这个裁剪框   var自我=;   var图像=. getelementbyid('图像');   这一点。收割机=new收割机(形象,{   aspectRatio: 1、   viewMode: 1、   背景:假的,   缩放:假的,   准备:函数(){   自我。croppable=true;   }   });   },   方法:{   getObjectURL(文件){   var url=零;   如果(window.createObjectURL !=未定义){//基本   url=window.createObjectURL(文件);   }else if (window.URL !=未定义){//火狐(firefox)   url=window.URL.createObjectURL(文件);   }else if (window.webkitURL !=未定义){//webkit或铬   url=window.webkitURL.createObjectURL(文件);   }   返回的url;   },   改变(e) {   让文件=e。target。文件| | e.dataTransfer.files;   如果(! files.length)返回;   这一点。面板=true;   这一点。picValue=https://www.yisu.com/zixun/files [0];   这一点。url=this.getObjectURL (this.picValue);//每次替换图片要重新得到新的url   如果(this.cropper) {   this.cropper.replace (this.url);   }   这一点。面板=true;   },   作物(){   这一点。面板=false;   var croppedCanvas;   var roundedCanvas;   如果(! this.croppable) {   返回;   }//作物   croppedCanvas=this.cropper.getCroppedCanvas ();   console.log (this.cropper)//轮   roundedCanvas=this.getRoundedCanvas (croppedCanvas);   这一点。headerImage=roundedCanvas.toDataURL ();   this.postImg ()   },   getRoundedCanvas (sourceCanvas) {   画布var=document.createElement(“画布”);   var=canvas.getContext上下文(2 d);   var宽度=sourceCanvas.width;   var高度=sourceCanvas.height;   画布。宽度=宽度;   画布。身高=身高;   上下文。imageSmoothingEnabled=true;   上下文。drawImage (sourceCanvas 0 0、宽度、高度);   上下文。globalCompositeOperation=澳康牡亍?   context.beginPath ();   上下文。弧(宽/2,高/2,数学。分钟(宽度、高度)/2,0,2 *数学。π,真实);   context.fill ();   返回帆布;   },   postImg () {//这边写图片的上传   }   }   }      

  

  

css代码(比较长,本来想不贴上了,但是为了一下童鞋可以直接运行演示,还是贴上了,篇幅过长,望见谅):

        * {   保证金:0;   填充:0;   }   #演示#按钮{   位置:绝对的;   右:10 px;   上图:10 px;   宽度:80 px;   高度:40像素;   边界:没有;   border - radius: 5 px;   背景:白色;   }   #演示,告诉{   宽度:100 px;   身高:100 px;   溢出:隐藏;   位置:相对;   这个特性:50%;   边界:1 px固体# d5d5d5;   }   #演示.picture {   宽度:100%;   高度:100%;   溢出:隐藏;   背景位置:中心中心;   平铺方式:不再重演;   background-size:封面;   }   #演示.container {   z - index: 99;   位置:固定;   padding-top: 60 px;   左:0;   上图:0;   右:0;   底部:0;   背景:rgba (0, 0, 0, 1);   }   #演示#{形象   max-width: 100%;   }   .cropper-view-box。cropper-face {   这个特性:50%;   }/* !   *收割机。js v1.0.0-rc   * https://github.com/fengyuanchen/cropperjs   *   *版权(c) 2017 Fengyuan陈   *在MIT许可下发布   *   *日期:2017 - 03 - 25 - t12:02:21.062z   */.cropper-container {   字体大小:0;   行高:0;   位置:相对;   -webkit-user-select:没有;   -moz-user-select:没有;   -ms-user-select:没有;   用户选择:没有;   方向:ltr;   -ms-touch-action:没有;   touch-action:没有   }   .cropper-container img {/*避免利润率最高问题(出现alt=" vue中使用cropperjs的方法">

vue中使用cropperjs的方法