简单易用的vue图片裁剪插件,支持移动图像,裁剪图片,放大缩小图片,上下左右移动,固定比例,固定尺寸,远程图片裁剪,只需要很少的代码就可以实现裁剪功能,也可以通过调整参数以适应你自己的业务需求。
A image crop plug-in for Vue,you can use it to rotate、zoom images and cut any size

https://www.ihtmlcss.com/demo/dist/#/croptool
Github:https://github.com/acccccccb/vue-img-cutter
码云:https://gitee.com/GLUESTICK/vue-img-cutter
If this project is helpful to you, please give me a star :)
npm install vue-img-cutter@2 --save-dev # for vue2
npm install vue-img-cutter@3 --save-dev # for vue3
import ImgCutter from 'vue-img-cutter'
export default {
        components:{
            ImgCutter
        },
...
}
<ImgCutter v-on:cutDown="cutDown"></ImgCutter>
<ImgCutter v-on:cutDown="cutDown">
    <template #open>
        <button>Choose image</button>
    </template>
</ImgCutter>
- Create an object(name,src,
width and heightare required).
- this.$refs.imgCutterModal.handleOpen(The Object).
// The object like this.
let obj = {
    name: '1.jpg', //Image name
    src: 'http://url/1.jpg', // Image url
    //width:200,//Image width  remove in 2.1.9+
    //height:200,//Image height remove in 2.1.9+
};
ForIE9:function(){
	// First you need create object have name,src.
	// Then trigger handleOpen(obj) and deliver the obj.
	this.$refs.imgCutterModal.handleOpen({
        name:"image.jpg",
        src:"http://imageServ.com/image.jpg",
    });
}
| Attribute | Effect | Type | Require | Default | 
|---|---|---|---|---|
| isModal | Is modal | Boolean | No | true | 
| showChooseBtn | Show select btn | Boolean | No | true | 
| lockScroll | Lock scroll when modal is show | Boolean | No | true | 
| modalTitle | Modal title text | String | No | 图片裁剪 | 
| label | Button text | String | No | 选择图片 | 
| boxWidth | Tool width | Number | No | 800 | 
| boxHeight | Tool height | Number | No | 400 | 
| cutWidth | Selection box width | Number | No | 200 | 
| cutHeight | Selection box height | Number | No | 200 | 
| tool | Show toolbar | Boolean | No | true | 
| toolBgc | Toolbar background color | String(eg: “#fff”) | No | #fff | 
| sizeChange | Allow change size | Boolean | No | true | 
| moveAble | Allow change position | Boolean | No | true | 
| originalGraph | Crop original image | Boolean | No | false | 
| crossOrigin | Is cross origin image | Boolean | No | false | 
| crossOriginHeader | Set cross origin header | String | No | ’’ | 
| rate | Aspect ratio | String(eg: “4:3”) | No | - | 
| WatermarkText | Watermark Text | String | No | ’’ | 
| WatermarkTextFont | Watermark font size | String | No | ‘12px Sans-serif’ | 
| WatermarkTextColor | Watermark font color | String | No | ‘#fff’ | 
| WatermarkTextX | Watermark position x | Number | No | 0.95 | 
| WatermarkTextY | Watermark position y | Number | No | 0.95 | 
| smallToUpload | If choose image size less then defined Size,return file. sizeChange must be false | Boolean | No | false | 
| saveCutPosition | Save last cut position and size | Boolean | No | false | 
| scaleAble | Allow scale image | Boolean | No | true | 
| imgMove | Allow move image | Boolean | No | true | 
| toolBoxOverflow | Allow tool box out of picture range | Boolean | No | true | 
| index | Return with result | Any | No | null | 
| previewMode | Return results at any time,in case of performance problems, set this to false | Boolean | No | true | 
| fileType | Return file type ( png / jpeg / webp) | String | No | png | 
| quality | image quality | Number | No | 1 | 
| accept | accept file type | String | No | ‘image/gif, image/jpeg ,image/png’ | 
| afterChooseImg | Before choose image | () => Promise.resolve(Boolean) | No | - | 
| Attribute | Effect | Type | Require | Return | 
|---|---|---|---|---|
| cutDown | Cut down image | Function | Yes | Object | 
| error | Throw error | Function | No | Error object | 
| onChooseImg | ChooseImg | Function | No | Object | 
| onPrintImg | Print image to canvas | Function | No | Object | 
| onClearAll | Clear all | Function | No | null | 
| onImageLoadComplete | Image loading completed | Function | No | Object | 
| onImageLoadError | Image loading failed | Function | No | Object | 
| Slot name | Effect | 
|---|---|
| open | Choose btn | 
| openImgCutter | Choose btn | 
| choose | Choose btn(in tool) | 
| cancel | Cancel btn | 
| confirm | Confirm btn | 
| ratio | Toolbar ratio | 
| scaleReset | Toolbar reset scale | 
| turnLeft | Toolbar turn left | 
| turnRight | Toolbar turn right | 
| reset | Toolbar reset | 
| flipHorizontal | Toolbar flip horizontal | 
| flipVertically | Toolbar flip vertically | 
| Attribute | Description | 
|---|---|
| fileName | File name | 
| file | File(Some versions of IE is not support) | 
| blob | Blob(Some versions of IE is not support) | 
| dataURL | dataURL | 
 

bugfix:#note_11139264
bugfix:#64
New prop( quality ) : A Number between 0 and 1 indicating the image quality
bugfix:#I4SDOE
bugfix: dialog-footer default height 40px
bugfix: width height x and y convert to int