1.0.4 • Published 3 years ago

wl-image-cropper v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

图片裁剪插件

使用方法

npm install @stl/image-cropper

//如果“addStyle”参数传入的是false,需要用此方式加载css;如果不传“addStyle”参数则默认通过js方式加载css
css:  @import "/node_modules/@stl/image-cropper/dist/index.css";

html:
<input type="file" id="input_box" />//上传图片框
<div class="img_box" id="img_cropper" style="width:200px;height:200px"></div>//裁剪框父元素
<div class="yl" style="width:120px;height:120px;overflow:hidden;"></div>//大预览框
<div class="yl" style="width:80px;height:80px;overflow:hidden;"></div>//中等预览框
<div class="yl" style="width:40px;height:40px;overflow:hidden;"></div>//小预览框
<div>
    <div id="fd">图片放大按钮</div>
    <div id="sx">图片缩小按钮</div>
    <div id="yy">裁剪框右移按钮</div>
    <div id="sy">裁剪框上移按钮</div>
    <div id="zy">裁剪框左移按钮</div>
    <div id="xy">裁剪框下移按钮</div>
</div>
<div id="get_img">获取裁剪后的图片</div>

ts:
import { imageCropper } from "@stl/image-cropper"
let imgCropper:any = new imageCropper(
    {
        ele:document.getElementById("img_cropper"),
        inputBox:document.getElementById("input_box"),
        src:"http://www.jq22.com/demo/cropper-master20160830/examples/crop-avatar/img/picture.jpg",
        previewBox:document.getElementsByClassName("yl"),
        magnifyBtn:document.getElementById("fd"),
        shrinkBtn:document.getElementById("sx"),
        moveLeftBtn:document.getElementById("zy"),
        moveRightBtn:document.getElementById("yy"),
        moveUpBtn:document.getElementById("sy"),
        moveDownBtn:document.getElementById("xy"),
        getImgBtn:document.getElementById("get_img"),
        getImgCallback:uploadImg,
    }
);
function uploadImg(src){
    console.log(src)
    ......
}

方法说明

magnifyFn:()=>void 放大图片的回调方法(如果传入了参数magnifyBtn则不需要再调用此方法放大图片)    
            调用方式  imgCropper.magnifyFn()
shrinkFn:()=>void 缩小图片的回调方法(如果传入了参数shrinkBtn则不需要再调用此方法缩小图片)     
            调用方式  imgCropper.shrinkFn()
moveLeftFn:()=>void 裁剪框左移的回调方法(如果传入了参数moveLeftBtn则不需要再调用此方法)   
            调用方式  imgCropper.moveLeftFn()
moveRightFn:()=>void 裁剪框右移的回调方法(如果传入了参数moveRightBtn则不需要再调用此方法)  
            调用方式  imgCropper.moveRightFn()
moveUpFn:()=>void 裁剪框上移的回调方法(如果传入了参数moveUpBtn则不需要再调用此方法)     
            调用方式  imgCropper.moveUpFn()
moveDownFn:()=>void 裁剪框下移的回调方法(如果传入了参数moveDownBtn则不需要再调用此方法)   
            调用方式  imgCropper.moveDownFn()
changeImg:(src:string)=>void 更改图片的回调(如果传入了上传图片的input框则不需要再调用此方法)   
            调用方式  imgCropper.changeImg()
getCropSize:(callback)=>void 获取裁剪后图片的base64编码(如果传入参数getImgBtn和getImgCallback则不需要再调用此方法)   
            调用方式 imgCropper.getCropSize(callback)
            此方法接收一个参数callback  callback将在获取裁剪后图片的base64编码后执行并将base64编码传入callback中

备注

1.如果你要使用跨源图片来作为剪裁图片,请确保你的图片服务器支持Access-Control-Allow-Origin属性,
  不然会产生图片跨域问题。
2.getImgCallback方法将获得裁剪后图片的base64编码,如果图片有跨域或其他未知问题会导致生成base64编码失败, 
  如果生成失败则会返回一个对象:
    {
        width:裁剪后的图片宽度,
        height:裁剪后的图片高度,
        x:x轴的起始裁剪位置,
        y:y轴的起始裁剪位置,
        src:裁剪前的原图片地址
    }

参数说明(加粗的为必传项)

参数名类型默认值description
eleHTMLElement裁剪框父元素
srcstring""初始化时裁剪框内显示的图片地址
inputBoxHTMLElementnull上传图片的input框 (必须设置type="file")点击此元素上传图片后将会默认将上传图片加载到裁剪框
addStylebooleantruetrue:通过js的方式添加style标签,false:不会通过js的方式添加样式 需要手动引入css文件
previewBoxHTMLElementnull预览裁剪图片的元素(列表)document.getElementById("")或document.getElementsByClassName("")两种方式传入
zoomMultiplenumber20图片可缩放的倍数
zoomScalenumber0.05每次缩放图片的比例
cropperBoxWidthnumber200裁剪框初始宽度
cropperBoxHeightnumber200裁剪框初始高度
fixedCropSizebooleanfalse是否固定裁剪框尺寸
moveStepnumber10点击移动裁剪框按钮每次移动的距离
magnifyBtnHTMLElementnull点击放大图片的按钮
shrinkBtnHTMLElementnull点击缩小图片的按钮
moveLeftBtnHTMLElementnull点击向左移动裁剪框的按钮
moveRightBtnHTMLElementnull点击向右移动裁剪框的按钮
moveUpBtnHTMLElementnull点击向上移动裁剪框的按钮
moveDownBtnHTMLElementnull点击向下移动裁剪框的按钮
getImgCallbackfunctionnull获取裁剪后图片成功的回调 此方法将获得一个参数(参数值见备注2)(此方法中this指向为实例化出来的imageCropper对象)
cropInitCompletefunctionnull裁剪框dom初始化完成的回调 (此方法中this指向为实例化出来的imageCropper对象)
inputImgCompletefunctionnull添加本地图片完成的回调(此方法将获得一个参数 input事件的this对象)(此方法中this指向为实例化出来的imageCropper对象)方法中将this.fileSrc赋值为空将阻止后面方法的执行