🎉 Vue 实现图片预览、裁剪并获取被裁剪区域的Base64(无组件) 📸

来源:

在 Vue 项目中实现图片预览与裁剪功能并不复杂,尤其是当你希望避免引入额外的组件时。这篇文章将带你一步步完成这个任务!首先,我们需要一个HTML `` 元素来上传图片,然后通过 ` FileReader ` 获取图片数据,并使用 Canvas 进行裁剪操作。

第一步是创建一个简单的文件选择器:

```html

```

接着,在 `uploadImage` 方法中,我们利用 `FileReader` 将图片转为 Base64 格式:

```javascript

const reader = new FileReader();

reader.onload = (e) => {

this.imageSrc = e.target.result;

};

reader.readAsDataURL(file);

```

接下来,使用 Canvas 对图片进行裁剪:

```javascript

const canvas = document.createElement('canvas');

const ctx = canvas.getContext('2d');

const img = new Image();

img.src = this.imageSrc;

img.onload = () => {

canvas.width = targetWidth; // 设置裁剪宽度

canvas.height = targetHeight; // 设置裁剪高度

ctx.drawImage(img, startX, startY, targetWidth, targetHeight, 0, 0, targetWidth, targetHeight);

const base64 = canvas.toDataURL('image/png');

console.log(base64); // 输出裁剪后的Base64

};

```

通过以上步骤,你就可以轻松实现图片的预览、裁剪以及获取裁剪区域的 Base64 数据啦!✨

标签:

免责声明:本文由用户上传,如有侵权请联系删除!