js-cropper是一款支持移动设备的js图片剪裁插件。该js图片剪裁插件基于HTML5 canvas,支持移动设备,可以通过Base64编码导出剪裁后的图片。它的特点还有:

  • 支持Promise API。
  • 支持移动触摸事件。
  • 基于canvas技术,支持canvas的浏览器都可以使用该插件。
  • 通过Base64编码导出剪裁后的图片。
  • 可以通过json数据来获取图片的位置和大小。
  • 可以通过json数据来设置图片的位置和大小。
  • 可以通过URL来获取图片。

使用方法

在页面中引入cropper.js和cropper.css文件。

<link href="css/cropper.css" rel="stylesheet" type="text/css">
<script src="js/cropper.js"></script>
                
HTML结构

使用一个<div>元素作为容器。

<div id="crop"></div>
                
初始化插件

然后通过下面的方法来初始化该js图片剪裁插件。

const cropper = new Cropper();
cropper.render("#crop");
cropper.loadImage("/path/to/image.jpg").then(function (crop) {
    console.info("Image is ready to crop.");
});     
                

配置参数

js-cropper图片剪裁插件的可用配置参数如下:

var cropper = new Cropper({
    width: 560,
    height: 340,
    onInit: function (crop) {},
    onChange: function(crop) {}
});                  
                
参数 类型 默认值 描述
width Number 560 要剪裁图片的宽度。
height Number 340 要剪裁图片的高度。
onInit(cropper) Function 插件初始化后的回调函数。
onChange(cropper) Function 图片位置移动或被缩放后的回调函数。

方法

js-cropper图片剪裁插件的可用方法有:

方法 描述
render(node) 渲染指定的节点,将它转换为图片剪裁。
loadImage(imageUrl) 从url中加载图片。
setWidth(width) 修改剪裁图片的宽度。
setHeight(height) 修改剪裁图片的高度。
setZoom(zoom) 设置缩放值,从0-1。
reset() 重置图片的位置和大小。
getCroppedImage() 产生并获取代表剪裁后图片的data URI数据。
getData() 获取图片信息。
setData() 设置图片信息。

setData(data)getData()中的数据格式类似下面的样子。

var data = {
    origin: { x: 20, y: 40 }, 
    size: { width: 350, height: 350 }
}         
                

js-cropper图片剪裁插件的github地址为:https://github.com/denis-kalinichenko/js-cropper