Jadual Kandungan
Dapatkan lebar, ketinggian dan titik koordinat berasaskan kontena bagi kotak tangkapan skrin melalui kaedah di atas, kemudian biarkan kotak tangkap automatik VueCropper memaparkan dan tetapkan saiz dan kedudukan kotak tangkapan automatik.
Rumah hujung hadapan web View.js Gunakan vue-cropper untuk memangkas imej dalam projek vue

Gunakan vue-cropper untuk memangkas imej dalam projek vue

Oct 31, 2022 pm 07:16 PM
vue vue.js vue3

vueBagaimana untuk memangkas imej dalam projek? Artikel berikut akan memperkenalkan kepada anda cara menggunakan vue-cropper untuk memangkas imej saya harap ia akan membantu anda!

Gunakan vue-cropper untuk memangkas imej dalam projek vue

Disebabkan keperluan projek, pemangkasan imej diperlukan. Projek sebelumnya telah dilaksanakan oleh cropper.js Oleh kerana vue digunakan kali ini, komponen vue-cropper digunakan ia sangat mudah, tetapi terdapat banyak perangkap. (Belajar perkongsian video: tutorial video vue)

1. >2. Pemangkasan imej

npm install vue-cropper
Salin selepas log masuk

main.js

import VueCropper from 'vue-cropper'
Vue.use(VueCropper)
Salin selepas log masuk
1.

❗️Latar belakang imej yang dipangkas lalai mempunyai mozek yang hodoh . Gaya

.Gunakan vue-cropper untuk memangkas imej dalam projek vue

2 Selepas muat naik selesai, masukkan VueCropper dengan tetikus untuk mula memangkas

Tetapkan acara
<div    style="max-width:90%">
            <vueCropper
              @mouseenter.native="enter"
              @mouseleave.native="leave"
              ref="cropper"
              :img="uploadImg"
              :outputSize="option.size"
              :outputType="option.outputType"
              :info="true"
              :full="option.full"
              :canMove="option.canMove"
              :canMoveBox="option.canMoveBox"
              :original="option.original"
              :autoCrop="option.autoCrop"
              :fixed="option.fixed"
              :fixedNumber="option.fixedNumber"
              :centerBox="option.centerBox"
              :infoTrue="option.infoTrue"
              :fixedBox="option.fixedBox"
              style="background-image:none"
            ></vueCropper>
</div>
Salin selepas log masuk
pada keperluan VueCroper (⭐️
option: {
       info: true, // 裁剪框的大小信息
       outputSize: 0.8, // 裁剪生成图片的质量
       outputType: "jpeg", // 裁剪生成图片的格式
       canScale: false, // 图片是否允许滚轮缩放
       autoCrop: false, // 是否默认生成截图框
       fixedBox: false, // 固定截图框大小 不允许改变
       fixed: false, // 是否开启截图框宽高固定比例
       fixedNumber: [7, 5], // 截图框的宽高比例
       full: true, // 是否输出原图比例的截图
       canMove: false, //时候可以移动原图
       canMoveBox: true, // 截图框能否拖动
       original: false, // 上传图片按照原始比例渲染
       centerBox: false, // 截图框是否被限制在图片里面
       infoTrue: true // true 为展示真实输出图片宽高 false 展示看到的截图框宽高
     }
Salin selepas log masuk
untuk ditambahkan untuk menggunakan peristiwa asli pada kata kunci asli komponen

)style="background-image:none"

3. Hentikan pemangkasan apabila anda meninggalkan VueCropper dan dapatkan gambar yang dipangkas.

Tetapkan acara @mouseenter.native="enter" pada VueCroper

Di sini saya memangkas apabila saya meninggalkan p, dan imej yang dipangkas diluluskan selepas mengklik butang pangkas, bukannya memangkas selepas mengklik butang potong, kerana saya Jika anda mengklik butang potong untuk memangkas, gambar yang anda dapat belum dipotong Saya tidak tahu mengapa, jadi saya datang dengan kaedah ini.
enter() {
 if (this.uploadImg == "") {
   return;
 }
 this.$refs.cropper.startCrop(); //开始裁剪
},
Salin selepas log masuk
masalah pemangkasan imej vue-cropper

3 Gema bingkai tangkapan skrin kepada imej asal@mouseleave.native="leave"

leave() {
   this.$refs.cropper.stopCrop();//停止裁剪
   this.$refs.cropper.getCropData(data => { //获取截图的base64格式数据
     this.cutImg = data;
   });
   // this.$refs.cropper.getCropBlob(data => { //获取截图的Blob格式数据
   //   this.cutImg = data;
   // });
 },
Salin selepas log masuk


Prinsip asas: <. 🎜>

Dapatkan lebar, ketinggian dan titik koordinat berasaskan kontena bagi kotak tangkapan skrin melalui kaedah di atas, kemudian biarkan kotak tangkap automatik VueCropper memaparkan dan tetapkan saiz dan kedudukan kotak tangkapan automatik.

Ambil medan nama sebagai contoh: Gunakan vue-cropper untuk memangkas imej dalam projek vue
1 Tetapkan acara masukkan pada el-kad "nama"

this.$refs.cropper.getCropAxis() //获取截图框基于容器的坐标点 {x1: 174, x2: 131, y1: 86, y2: 58}
this.$refs.cropper.cropW  //截图框宽
this.$refs.cropper.cropH //截图框高
Salin selepas log masuk

2. . Pada semua Tetapkan acara cuti pada el-tabs pada lapisan luar el-card

{
          id: 1,
          name: "姓名",
          cropInfo: {
            width: 108, //this.$refs.cropper.cropW
            height: 56, //this.$refs.cropper.cropH 
            offsetX: 174, //this.$refs.cropper.getCropAxis().x1
            offsetY: 86  //this.$refs.cropper.getCropAxis().y1
}
Salin selepas log masuk

❗️Berhati-hati untuk tidak menetapkan acara cuti pada el-card , jika tidak, gerakkan tetikus ke el-kad seterusnya Bingkai pemangkasan akan dibatalkan dan dijana semula, menyebabkan halaman berkelip. <el-card @mouseenter.native="enterCard(refWord)" />

enterCard(refWord) {
      this.$refs.cropper.goAutoCrop();//重新生成自动裁剪框
      this.$nextTick(() => {
        // if cropped and has position message, update crop box
        //设置自动裁剪框的宽高和位置
        this.$refs.cropper.cropOffsertX = refWord.cropInfo.offsetX;
        this.$refs.cropper.cropOffsertY = refWord.cropInfo.offsetY;
        this.$refs.cropper.cropW = refWord.cropInfo.width;
        this.$refs.cropper.cropH = refWord.cropInfo.height;
      });
    }
Salin selepas log masuk
4 Lain

<el-tabs @mouseleave.native="leaveCard()" />

leaveCard() {
      this.$refs.cropper.clearCrop(); //取消裁剪框
    }
Salin selepas log masuk
Hadkan bingkai tangkapan skrin kepada imej: https://github.com/xyxiao001/vue-cropper/issues /429

Penyelesaian: centerBox ditetapkan kepada benar, dan ia hanya akan berkuat kuasa apabila autoCrop=true

Projek perlu menghantar maklumat kedudukan dan saiz kotak tanaman ke latar belakang. Biarkan latar belakang memangkas atau lakukan OCR, tetapi imej yang dipangkas selepas dihantar ke latar belakang sentiasa diimbangi ke sudut kanan bawah: https://github.com/xyxiao001/vue-cropper/issues/386

Penyelesaian: Imej berskala Ya, apabila melepasi kedudukan, anda perlu menggunakan skala kedudukan*.

  • Tiada masalah untuk memangkas kebanyakan gambar, tetapi sentiasa ada sisihan semasa memangkas beberapa gambar: https://github.com /xyxiao001/vue-cropper/issues/439

    Penyelesaian: Ternyata saiz imej yang dipangkas lalai adalah terhad Lebar dan ketinggian maksimum ialah 2000px dan masalahnya selesai.

  • [Tutorial video berkaitan yang disyorkan:

    tutorial pengenalan vuejs
    ,

    bermula dengan web bahagian hadapan
  • ]

Atas ialah kandungan terperinci Gunakan vue-cropper untuk memangkas imej dalam projek vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1673
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Vue.js vs React: Pertimbangan khusus projek Vue.js vs React: Pertimbangan khusus projek Apr 09, 2025 am 12:01 AM

Vue.js sesuai untuk projek kecil dan sederhana dan lelaran yang cepat, sementara React sesuai untuk aplikasi besar dan kompleks. 1) Vue.js mudah digunakan dan sesuai untuk situasi di mana pasukan tidak mencukupi atau skala projek kecil. 2) React mempunyai ekosistem yang lebih kaya dan sesuai untuk projek dengan prestasi tinggi dan keperluan fungsional yang kompleks.

Cara menambah fungsi ke butang untuk vue Cara menambah fungsi ke butang untuk vue Apr 08, 2025 am 08:51 AM

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apakah yang dimaksudkan dengan pembangunan Vue Multi-Page? Apr 07, 2025 pm 11:57 PM

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

React vs Vue: Rangka kerja mana yang digunakan oleh Netflix? React vs Vue: Rangka kerja mana yang digunakan oleh Netflix? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

Cara melompat ke Div Vue Cara melompat ke Div Vue Apr 08, 2025 am 09:18 AM

Terdapat dua cara untuk melompat elemen div di Vue: Gunakan Vue Router dan tambahkan komponen router-link. Tambah pendengar acara @Click dan panggil ini. $ Router.push () kaedah untuk melompat.

Cara melaksanakan lompat komponen untuk vue Cara melaksanakan lompat komponen untuk vue Apr 08, 2025 am 09:21 AM

Terdapat kaedah berikut untuk melaksanakan lompat komponen di Vue: Gunakan Router-Link dan & lt; Router-View & GT; Komponen untuk melaksanakan lompat hiperpautan, dan tentukan: untuk atribut sebagai laluan sasaran. Gunakan & lt; router-view & gt; Komponen secara langsung untuk memaparkan komponen yang dijalankan yang sedang dialihkan. Gunakan kaedah router.push () dan router.replace () untuk navigasi programatik. Bekas menjimatkan sejarah dan yang kedua menggantikan laluan semasa tanpa meninggalkan rekod.

Cara melompat tag ke vue Cara melompat tag ke vue Apr 08, 2025 am 09:24 AM

Kaedah untuk melaksanakan lompatan tag dalam Vue termasuk: menggunakan tag dalam templat HTML untuk menentukan atribut HREF. Gunakan komponen router-link routing VUE. Gunakan ini. $ Router.push () kaedah dalam JavaScript. Parameter boleh dilalui melalui parameter pertanyaan dan laluan dikonfigurasikan dalam pilihan penghala untuk lompatan dinamik.

React, Vue, dan Masa Depan Frontend Netflix React, Vue, dan Masa Depan Frontend Netflix Apr 12, 2025 am 12:12 AM

Netflix terutamanya menggunakan React sebagai rangka kerja front-end, ditambah dengan VUE untuk fungsi tertentu. 1) Komponen React dan DOM maya meningkatkan prestasi dan kecekapan pembangunan aplikasi Netflix. 2) VUE digunakan dalam alat dalaman dan projek kecil Netflix, dan fleksibiliti dan kemudahan penggunaannya adalah kunci.

See all articles