Rumah >hujung hadapan web >View.js >Bagaimana untuk melaksanakan pemangkasan dan pemampatan imej dalam Vue?
Dengan pempopularan peranti mudah alih, permintaan untuk pemprosesan imej semakin tinggi, antaranya pemangkasan dan pemampatan imej merupakan keperluan yang agak biasa Artikel ini akan memperkenalkan cara melaksanakan pemangkasan dan pemampatan imej dalam Vue.
1. Pangkas gambar
Mula-mula anda perlu memasang pemalam vue-cropper, yang berasaskan cropperjs dan boleh melaksanakan fungsi pemangkasan imej dengan cepat.
npm install vue-cropper --savee
introduce plug-in in main.js dan daftar:
import VueCropper from 'vue-cropper' Vue.component('VueCropper', VueCropper)
add component component dalam komponen:
<template> <div> <input type="file" ref="file" @change="getFile($event)" /> <vue-cropper v-model="image" :guides="true"></vue-cropper> <button @click="getCroppedImage">裁剪图片</button> <div class="result"> <img :src="croppedImage" alt="裁剪后的图片" v-if="croppedImage" /> </div> </div> </template>eget image
data () { return { image: null, croppedImage: null } }
Tambah kaedah getFile untuk mendapatkan imej yang dimuat naik:
getFile (event) { let file = event.target.files[0] let reader = new FileReader() reader.readAsDataURL(file) reader.onload = e => { this.image = e.target.result } }Pangkas imej
Mampatkan imej
2. Selain memotong imej, Dalam sesetengah kes, kita juga perlu memampatkan imej untuk meningkatkan kelajuan pemuatan halaman Berikut ialah cara untuk mencapai pemampatan imej.Pasang pemalam
getCroppedImage () { this.$refs.cropper.getCroppedCanvas().toBlob(blob => { this.croppedImage = window.URL.createObjectURL(blob) }) }e
introduce plug-in
npm install vue-image-compressor --save
add component
import ImageCompressor from 'vue-image-compressor' Vue.use(ImageCompressor)eget image
<template> <div> <input type="file" ref="file" @change="getFile($event)" /> <button @click="compressImage">压缩图片</button> <div class="result"> <img :src="compressedImage" alt="压缩后的图片" v-if="compressedImage" /> </div> </div> </template>
data () { return { image: null, compressedImage: null } }
Imej termampat
Tambah kaedah compressImage untuk memampatkan imej:getFile (event) { let file = event.target.files[0] let reader = new FileReader() reader.readAsDataURL(file) reader.onload = e => { this.image = e.target.result } }
compressImage () { let options = { quality: 0.7, maxWidth: 500, maxHeight: 500, mimeType: 'image/jpeg' } this.$compress(this.image, options).then(data => { this.compressedImage = data }) }4RingkasanArtikel ini memperkenalkan cara melaksanakan fungsi pemampatan dan pemampatan dalam Vue pemangkasan dan pemalam pihak ketiga digunakan untuk pemampatan vue-image-compressor, gunakan pemalam ini untuk melaksanakan fungsi pemprosesan imej dengan cepat dan meningkatkan kecekapan pembangunan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemangkasan dan pemampatan imej dalam Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!