下载引入

npm install cropperjs
import 'cropperjs/dist/cropper.css'
import Cropper from 'cropperjs'

如果是基于服务端的裁切,则使用:getData 方法,该方法得到裁切的区域参数然后传给服务端。

this.myCropper.getData()

如果是纯客户端的图片裁切,则使用:getCroppedCanvas 方法,该方法得到裁切之后的图片对象(类似于URL.createObjectURL 方法得到的文件对象)。

this.myCropper.getCroppedCanvas()

配置项        new Cropper( 操作对象,{ 配置项 } )

const image = this.$refs.image; //获取图片元素this.myCropper = new Cropper(image, {preview: '.afterCropper', // 拖动裁剪框预览视图 viewMode: 1, //裁切框的位置,0可以选择图片外,1只能在图片内dragMode: "move", //拖动方式,crop、move、noneaspectRatio: 0/0, //截取的比例  0/0设置关闭等比例缩放 可以使用setAspectRatio方法重新设置宽高比 autoCropArea: 0.8, //撑满画布cropBoxMovable: true, //截取框移动功能corpBoxResizable: true, //截取框缩放功能background: true, //背景movable: true, //画布是否可以移动});      

下面是个demo  效果图和代码附上

<template><div style="padding: 20px"><div class="cropper"><!-- 剪裁框 --><div class="img-container"><img ref="image" src="./1b73704b282a8ec6.jpg" alt="" /></div><!-- 预览框 --><div class="afterCropper"><img :src="afterImg" alt="" /></div></div><el-button style="margin-top: 20px" @click="sureSava" > 剪切 </el-button></div>
</template><script>
import Cropper from "cropperjs";
import "cropperjs/dist/cropper.css";
export default {name: "Cropper",data() {return {myCropper: null,afterImg: "",};},mounted() {this.init();},methods: {init() {const image = this.$refs.image; //获取图片元素this.myCropper = new Cropper(image, {preview: '.afterCropper', // 拖动裁剪框预览视图 viewMode: 1, //裁切框的位置,0可以选择图片外,1只能在图片内dragMode: "move", //拖动方式,crop、move、noneaspectRatio: 0/0, //截取的比例  0/0设置关闭等比例缩放 可以使用setAspectRatio方法重新设置宽高比 autoCropArea: 0.8, //撑满画布cropBoxMovable: true, //截取框移动功能corpBoxResizable: true, //截取框缩放功能background: true, //背景movable: true, //画布是否可以移动});      },sureSava() {this.afterImg = this.myCropper.getCroppedCanvas({imageSmoothingQuality: "high",}).toDataURL("image/jpeg"); // 拿到裁剪后的base64的图片this.myCropper.getCropBoxData(); // 获取裁剪框数据      console.log(this.myCropper.getCropBoxData(), "获取裁剪框数据");console.log(this.myCropper.getCanvasData(), "获取图片数据");//   this.myCropper.setCropBoxData({//     left: 105.4774169921875,//     top: 89.11300048828127,//     width: 183.79999999999998,//     height: 183.79999999999998//   }) // 设置裁剪框数据// console.log(this.myCropper.setCropBoxData(), "设置裁剪框数据");// console.log(this.myCropper.setCanvasData(), "设置图片数据");},},
};
</script><style lang="scss" scoped>
.cropper {width: 100%;display: flex;
}.img-container {width: 50%;height: 400px;overflow: hidden;
}
.afterCropper {width: 50%;height: 400px;margin-left: 20px;border: 1px solid #ccc;text-align: center;overflow: hidden; // 这个属性可以得到想要的预览效果 必须加了才生效
}
.afterCropper img {
//   width: 400px;height: 400px;padding: 20px;
}
</style>

Cropperjs使用 前端图像裁剪相关推荐

  1. 前端图片裁剪 cropperjs的简单使用

    https://github.com/fengyuanchen/cropperjs 演示 <!DOCTYPE html> <html lang="zh">& ...

  2. canvas实现图像裁剪

    1.技术背景 随着都市类程序开发业务推进,在各类活动.个人信息等模块逐渐依赖图像裁剪.上传等功能,那么如何实现图像缩放.裁剪就成了前端工程师们关注优化的重点. 2.应用技术 本次使用的技术主要是依赖c ...

  3. 使用 jQuery Jcrop 实现图像裁剪

    一.使用方法: 代码: // 载入CSS文件 <link rel="stylesheet" href="css/jquery.Jcrop.css"> ...

  4. java图像处理之图像裁剪

    图像裁剪即截取原始图像某一部分生成一幅新的图像,某些app也会要求用户将上传图像进行一定程度裁剪来作为头像.图像裁剪实现起来比较简单,下面介绍两种裁剪方式,矩形裁剪和圆形裁剪. 矩形裁剪,定义图像上某 ...

  5. jQuery 图像裁剪插件Jcrop

    Jcrop简介 Jcrop 是一个功能强大的 jQuery 图像裁剪插件,结合后端程序(例如:PHP)可以快速的实现图片裁剪的功能. Jcrop是一款免费的软件,采用MIT License发布. 注: ...

  6. html图片自动剪裁,HTML canvas图像裁剪

    canvas drawImage方法的图像裁剪理解可能会比较耗时,记录一下,以便供人翻阅! context.drawImage(img,sx,sy,swidth,sheight,x,y,width,h ...

  7. 3h精通OpenCV(三)-重调大小与图像裁剪

    0.准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库. 我们还要知道在OpenCV中,坐标轴的方向是x轴向右,y轴向下,坐标原 ...

  8. ENVI5.3.1使用Landsat 8影像进行图像镶嵌和图像裁剪实例操作

    数据介绍及数据其他操作详见此博客 ENVI5.3.1使用Landsat 8影像进行预处理及分析实例操作 数据介绍参看这篇博客 ENVI5.3.1使用Landsat 8影像进行辐射定标和大气校正实例操作 ...

  9. 地图裁剪器,可以将图片裁剪成瓦片数据,主要用途是将高清卫星图像裁剪成瓦片图,可以做离线地图的开发,基于墨卡托坐标

    废话不多说,直接上代码 地图裁剪器,可以将图片裁剪成瓦片数据,主要用途是将高清卫星图像裁剪成瓦片图,可以做离线地图的开发,基于墨卡托坐标 地图裁剪 package com.wwp.utils.map; ...

最新文章

  1. jsp 插入mysql乱码_JSP MySQL插入数据时出现中文乱码问题的解决方法
  2. linux进程下的线程数,Linux下查看进程线程数的方法
  3. Lesson 6.动态计算图与梯度下降入门
  4. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略
  5. c# 微服务学习_微服务:学习几个容易混淆的URL注解
  6. boost::geometry::dissolver用法的测试程序
  7. concat函数_三、P57-61 MySQL中常用函数
  8. NPOI 导出 excel 性能测试
  9. NEERC13 Problem H.Hack Protection
  10. Windows安装及使用sqlmap
  11. 零基础转行学习python是否还在纠结?这里告诉你答案!
  12. rssi室内定位算法原理_室内定位方案常用的4种定位算法
  13. BOOM!多模态遇上推荐系统
  14. 传智播客-刘意-java深入浅出精华版学习笔记Day10
  15. 自我提升之二 揭秘IOC注入框架,轻松实现布局、属性、事件注入
  16. outlook vba html语言,在VBA中更改HTML电子邮件正文字体类型和大小
  17. 排队模型和排队系统仿真
  18. 高鸿业宏观经济学第七版答案
  19. 台式计算机配置清单4500,4500组装电脑配置清单
  20. duilib设计器 DuiEditor简易教程 (DuiDesigner) (一)

热门文章

  1. 基于三代测序数据的结构变异检测,PBHoney方法解读
  2. [数据库]封锁管理和封锁协议
  3. Win11的两个实用技巧系列之电脑ip总是冲突怎么办?
  4. 任意二叉树节点数、度数与叶子数的关系
  5. IE6,7兼容性问题
  6. 对比两款支持扩展的安卓浏览器:kiwi浏览器和狐猴浏览器
  7. 洗地机到底好不好用?洗地机品牌排行榜前十名
  8. python中有序数据类型_Python的数据类型总结
  9. 【LeetCode 622 链表专项】设计循环队列
  10. element-ui中的el-upload组件的使用