Skip to main content

圖片剪裁套件的使用 - Vue-Cropper

1 min read

Vue Cropper 這個套件使用起來非常方便,而且剛好符合我的需求,只需要看著文件設置一些設定就可以做出變化了。

前言

當主管告知需要在後台將前台的圖片做剪裁修改後,並且能夠即時預覽結果,最後再將圖片存成新檔案。找了一下有沒有前人造的輪子,發現還真的有,所以設置了一下後就可以達到我要的效果了。

Vue Cropper

安裝

npm install vue-cropper yarn add vue-cropper

在 component 裡使用

import { VueCropper } from "vue-cropper"; components: { VueCropper, },

data 跟 methods 的設定:

data() { return { modelSrc: "", option: { img: "https://fakeimg.pl/450x300/", // 圖片來源 outputType: "png", // 產生圖片的格式 autoCrop: true, // 是否要有截圖框 autoCropWidth: 350, // 截圖框寬 autoCropHeight: 220, //截圖框高 },
};

}, methods: { // 預覽目前截圖結果*** preview() { this.$refs.cropper.getCropData((data) => { // console.log(data); this.modelSrc = data; }); }, // 即時預覽函數*** realTime(data) { this.previews = data; // console.log(data); }, // 得到截圖的 base64 數據*** demo() { this.$refs.cropper.getCropData((data) => { console.log(data); }); }, },

最後在 component 的綁定

<vueCropper ref="cropper" :img="option.img" :outputType="option.outputType" :autoCrop="option.autoCrop" :autoCropWidth="option.autoCropWidth" :autoCropHeight="option.autoCropHeight" @realTime="realTime" >

這樣就會產生一個可以自由切割並且截圖的區塊,可以試著玩看看我建立的 CodeSandBox:

最後要記得給這個 component 一個高度,不然會顯示不出來。

資料來源:vue-cropper