Vue Avatar Cropper

An easy and elegant image cropper for avatar upload.

Features:

  • Custom trigger event.
  • Moveable.
  • Zoomable
  • Custom aspect ratio.
  • Allows you to set the allowed meme type.
  • Event handlers.

How to use it:

1. Import and register the AvatarCropper component.

// Import
import AvatarCropper from 'vue-avatar-cropper';

// Register
Vue.component('AvatarCropper', AvatarCropper);

// or
Vue.use(AvatarCropper);

// or
new Vue({
    components: { AvatarCropper },
    // ...
});

2. Add the <avatar /> component to the template.

<template>
  <div>
    <form method="post">
      <avatar />
    </form>
  </div>
</template>

3. Available props.

trigger: {
  type: Boolean,
  default: false,
},
file: {
  type: File,
},
uploadHandler: {
  type: Function,
},
uploadUrl: {
  type: String,
},
requestOptions: {
  type: Object,
  default() {
    return {
      method: 'POST',
    }
  },
},
uploadFileField: {
  type: String,
  default: 'file',
},
uploadFormData: {
  type: FormData,
  default() {
    return new FormData()
  },
},
cropperOptions: {
  type: Object,
  default() {
    return {
      aspectRatio: 1,
      autoCropArea: 1,
      viewMode: 1,
      movable: false,
      zoomable: false,
    }
  },
},
outputOptions: {
  type: Object,
},
outputMime: {
  type: String,
  default: null,
},
outputQuality: {
  type: Number,
  default: 0.9,
},
mimes: {
  type: String,
  default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon',
},
capture: {
  type: String,
},
labels: {
  type: Object,
  default() {
    return {
      submit: 'Ok',
      cancel: 'Cancel',
    }
  },
},
inline: {
  type: Boolean,
  default: false,
},

4. Events.

  • @triggered: (value) => {}
  • @changed: (file, reader) => {}
  • @submit: () => {}
  • @cancel: () => {}
  • @uploading: (form, request, response) => {}
  • @uploaded: (form, request, response) => {}
  • @completed: (form, request, response) => {}
  • @error: (message, type, context) => {}

Preview:

Vue Avatar Cropper
Changelog:

02/03/2022

  • v6.0.9: update

01/17/2022

  • v6.0.0: update for Vue 3

11/06/2021

  • v5.0.2: update

10/11/2021

  • v5.0.1: Fix keep mime logic

09/11/2021

  • v4.0.4: Fix: Use correct file field name option

08/03/2021

  • v4.0.3: Fix: Use correct file field name option

08/01/2021

  • v4.0.2: Replaced XMLHttpRequest with fetch API and other improvements

07/23/2021

  • v3.0.6

07/17/2021

  • v2.0.1

04/21/2021

  • v2.0.0

09/22/2020

  • v1.0.9

09/05/2020

  • v1.0.7

Download Details:

Author: overtrue

Live Demo: https://codesandbox.io/s/github/overtrue/vue-avatar-cropper-demo/tree/master/

Download Link: https://github.com/overtrue/vue-avatar-cropper/archive/master.zip

Official Website: https://github.com/overtrue/vue-avatar-cropper

Install & Download:

$  npm i vue-avatar-cropper --save-dev

Add Comment