头图

vue-image-handler

一个支持图片自定义裁剪和去底色的插件

github地址(感谢star)

在线预览

安装

npm install vue-image-handler
# 或者
yarn add vue-image-handler

vue项目中使用

// main.js
// 全局安装使用
import VueImageHandler from 'vue-image-handler'
Vue.use(VueImageHandler)

// 页面单独引入使用
import VueImageHandler from 'vue-image-handler'
// ...省略其他代码
components: { VueImageHandler }

Attributes

名称功能默认值类型可选值
canvas-width画布的宽度380pxString
canvas-height画布的高度252pxString
img-file图片资源 Blob/File/String
wipe-color要去除的底色 Stringwhite/black
color-diff去底色的容差值20Number1-100
option其他配置(具体配置参数见下表) Object

Option

名称功能默认值类型可选值
outputQuality处理后的图片质量1Number0.1-1
outputType处理后的图片格式pngStringjpeg/png/webp
canMove图片是否可以移动trueBooleantrue/false
fixedBox固定截图框大小falseBooleantrue/false
cropWidth截图框宽380Number/String380
cropHeight截图框高252Number/String252

Events(通过this.$refs[your ref name].[method]调用)

方法名说明参数
rotate旋转90°
download下载处理后的图片
getImageUrl获取处理后的图片Base64
clear清空画布和预览图
refresh刷新画布

快速上手

<template>
  <VueImageHandler
   ref="vueImageHandler"
   :canvas-width="width"
   :canvas-height="height"
   :img-file="imgFile"
   :wipe-color="wipeColor"
   :color-diff="colorDiff"
  />
</template>
<script>
 export default {
  data() {
    return {
      imgFile: 'https://cdn.jsdelivr.net/gh/cong1223/cloudimg@master/img/20210613092202.png',
      wipeColor: '',
      colorDiff: 20,
      width: '380px',
      height: '252px'
    };
  },
  methods: {
   changeCanvasWidth(e) { // 动态修改画布和预览图的宽度
      this.width = e.target.value + 'px';
      this.$refs.vueImageHandler.refresh();
    },
    changeCanvasHeight(e) { // 动态修改画布和预览图的高度
      this.height = e.target.value + 'px';
      this.$refs.vueImageHandler.refresh();
    },
    changeWipeColor(e) { // 动态修改要去的底色(white or black)
      this.wipeColor = e;
    },
    changeColorDiff(e) { // 动态修改去底色的容差值
      this.colorDiff = +e.target.value;
    },
    pickImage() { // 从本地选择图片(input file)
      this.$refs.filElem.dispatchEvent(new MouseEvent('click'));
    },
    handleRotate() { // 原图旋转
      this.$refs.vueImageHandler.rotate();
    },
    getFile() { // 从本地选择图片后获取文件信息
      const inputFile = this.$refs.filElem.files[0];
      if (inputFile) {
        this.imgFile = inputFile;
        this.$refs.filElem.value = '';
      } else {
        return;
      }
    },
    download() { // 下载图片
      this.$refs.vueImageHandler.download();
    },
    getUrl() {
      this.$refs.vueImageHandler.getImageUrl(url => {
        console.log('处理后的图片', url);
      });
    },
    clear() { // 清空画布
      this.$refs.vueImageHandler.clear();
    }
  }
 }
</script>

更新日志

1.2.8

支持页面内单独引用:`import VueImageHandler from 'vue-image-handler'`

即将更新

1. download和getImageUrl支持自定义图片格式输出

MangoGoing
774 声望1.2k 粉丝

开源项目:详见个人详情