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