Html5移动端上传图片并裁剪 - Clipic.js

发布于 1周前 作者 junjufeng 最后一次编辑是 5天前 来自 分享

Clipic.js插件可以为移动端提供头像上传并裁剪成指定尺寸,用原生js开发的,轻量级,包含html跟css,不到8kb。先上一张效果图,或者点此链接体验:

https://teojs.github.io/clipic/

01.jpg

Github地址

https://github.com/teojs/clipic

使用方法

支持npm方式

$ npm install clipic

支持cdn 引入

<script src="https://unpkg.com/clipic/dist/clipic.min.js"></script>

在vue项目中使用

// xxx.vue

<template>
  <img :src="base64" />
  <input type="file" name="file" accept="image/*" @change="uploadImg" />
</template>
<script>
  import Clipic from 'clipic'
  const clipic = new Clipic()
  export default {
    data () {
      return {
        base64: ''
      }
    }
    methods: {
      uploadImg(event) {
        const files = event.files
        const reader = new FileReader()
        reader.readAsDataURL(files[0])
        reader.onload = img => {
          clipic.getImage({
            width: 500,
            height: 400,
            src: img.target.result,
            onDone: base64 => {
              this.base64 = base64
            }
          })
        }
        event.value = ''
      }
    }
  }
</script>

普通项目的使用可以看作者的demo

参数说明

width:Number (默认:500) – 裁剪宽度
height:Number (默认:500) – 裁剪高度
ratio:Number (可选) – 裁剪的比例,当传入ratio时width/height将无效
src:String (必传) – 需要裁剪的图片,可以是图片链接,或者 base64
type:String (默认:jpeg) – 裁剪后图片的类型,仅支持 jpeg/png 两种
quality:Number (默认:0.9) – 压缩质量
buttonText:Array (默认:[‘取消’, ‘重置’, ‘完成’]) – 底部三个按钮文本
1 回复

原理是基于canvas

回到顶部