UNPKG

s94-imgclip

Version:

图片裁剪工具

127 lines (101 loc) 3.91 kB
# **s94-ImgClip** > 图片裁剪工具 ## **安装** ``` $ npm install s94-imgclip ``` ## **使用** ```js var ImgClip = require('s94-imgclip'); imgclip = new ImgClip(document.querySelector('#imgclip'));// 第一步、在容器(#imgclip)中构建裁剪工具 var img = new Image(); img.onload = ()=>{ imgclip.start(img); // 第二步、指定需要裁剪的图片,img必须为Image对象 } img.src='http://s94.top/uploads/default_head_img0.jpg'; //在裁剪工具上调整自己需要的区域 //第三步,输出图片数据,有两种方式:一种是base64,一般用于直接显示;一种是Blob,可以用于FormData上传 document.querySelector('#clip-out').src = imgclip.toBase64();//base64 imgclip.toBlob(function(blobData){ console.log(blobData); }); ``` # **属性和方法** [new ImgClip(outer[, config])](#ImgClip) 构造方法 [start(img[, config])](#start) 传入需要处理的图片,开始剪切 [rotate(deg)](#rotate) 图像旋转 [clean()](#clean) 清理画板 [toBase64([type, quality])](#toBase64) 返回裁剪图片的base64数据 [clip([type, quality])](#clip) toBase64的别名 [toBlob(callback[, type, quality])](#toBlob) 返回裁剪图片的blob数据 <p id="ImgClip"></p> ## **new ImgClip(outer[, config])** - outer `Node` 构建裁剪工具的容器,必须为节点,且nodeType==1 - config `Object` 配置数据 - ratioWH `Number` 输出图片的宽高比,如果不为零,剪切框伸缩会固定 - outputWH `String` 输出分辨率,不设定按图片分辨率比例输出。格式为W*H,如400\*400(400400)400(400高自适应)\*400(400宽自适应) - 返回 `ImgClip` 裁剪工具对象 >在outer内构建裁剪作业的canvas ```js var ImgClip = require('s94-imgclip'); imgclip = new ImgClip(document.querySelector('#imgclip')); ``` <p id="start"></p> ## **start(img[, config])** - img `Image` 裁剪的图片对象 - config `Object` 同构造函数中的config,区别在于此处的config只对当前图片生效 - 返回 `ImgClip` 当前裁剪工具对象 >传入需要处理的图片img ```js var img = new Image(); img.onload = ()=>{ imgclip.start(img); // 第二步、指定需要裁剪的图片,img必须为Image对象 } img.src='http://s94.top/uploads/default_head_img0.jpg'; ``` <p id="rotate"></p> ## **rotate(deg)** - deg `Number` 图像旋转的弧度,注意此处传入的是弧度,而非角度,Math.PI=180- 返回 `ImgClip` 当前裁剪工具对象 >图像旋转 ```js imgclip.rotate(Math.PI*0.5); //旋转90度 ``` <p id="clean"></p> ## **clean()** - 返回 `ImgClip` 当前裁剪工具对象 >清理画板,移除裁剪的图片,再次使用,需要重新调用`start` ```js imgclip.clean(); ``` <p id="toBase64"></p> ## **toBase64([type, quality])** - type `String` 表示生成图片类型[jpg,png,webp](**默认值**:png) - quality `Number` 表示生成图片质量[0-1] (**默认值**:1) - 返回 `String` 图片的base64数据 >输出裁剪图片,返回图片的base64数据 ```js console.log(imgclip.toBase64()); //data:image/png;base64,iVBOR..... ``` <p id="clip"></p> ## **clip([type, quality])** >toBase64的别名 ```js console.log(imgclip.clip()); //data:image/png;base64,iVBOR..... ``` <p id="toBlob"></p> ## **toBlob(callback[, type, quality])** - callback `Function` 回调函数,用于接收裁剪后图片的Blob数据 - type `String` 表示生成图片类型[jpg,png,webp](**默认值**:png) - quality `Number` 表示生成图片质量[0-1] (**默认值**:0.92) - 返回 `Promise`|`underfind` >输出裁剪图片,返回图片的blob数据 ```js imgclip.toBlob(function(blobData){ console.log(blobData); }); //支持使用Promise异步调用 imgclip.toBlob().then(function(blobData){ console.log(blobData); }); ```