记录一次项目中用到的图片涂鸦功能(Vue)

记录一次项目中用到的图片涂鸦功能(Vue)

在项目中涉及到一个作战地图标绘的功能(百度地图截图后在截图上可以任意添加icon),然后点击下载可以保存编辑完成后的图片。

效果预览:

点击列表的图标可以在截图中绘制对应的icon

插件名称:TOAST UI Image Editor

安装依赖:

npm install --save @toast-ui/vue-image-editor

引入:

<template>
	<tui-image-editor
      :include-ui="useDefaultUI"
      :options="options"
      ref="tuiImageEditor">
    </tui-image-editor>
</template>
import { ImageEditor } from "@toast-ui/vue-image-editor";
import "tui-image-editor/dist/tui-image-editor.css";
export default {
    components: {
        'tui-image-editor': ImageEditor
    },
    data() {
        return {
            useDefaultUI: true,
            options: { // for tui-image-editor component's "options" prop
                cssMaxWidth: 700,
                cssMaxHeight: 500
            }
        };
    }
}

vue中使用ImageEditor的方法需要使用invoke方法来调用tui.ImageEditor的方法,第一个参数是方法的名称,第二个参数是方法的参数。具体方法请访问官方文档。

个人在项目主要用addImageObject方法来添加自己的icon,添加后的icon是可以自由旋转和改变大小的。

addImage(url) {
    //url是图片的地址
	const tuiImageEditor = this.$refs.tuiImageEditor;
	tuiImageEditor.invoke("addImageObject", url).then((res) => {
		console.log(res);
	});
},
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue是一款非常流行的前端框架,可以很方便地实现图片编辑和裁剪功能。下面,我来介绍一种使用Vue实现图片裁剪的方法。 首先,我们需要引入一个图片裁剪插件。这里我推荐使用Vue-Cropper插件,它是一款基于Cropper.jsVue图片裁剪组件,支持裁剪、旋转、缩放等操作。 安装Vue-Cropper插件: ``` npm install vue-cropper --save ``` 然后在Vue组件引入并使用Vue-Cropper: ```vue <template> <div> <vue-cropper ref="cropper" :src="imageUrl" :guides="false" :view-mode="1" :drag-mode="cropDragMode" :aspect-ratio="cropAspectRatio" :auto-crop-area="cropAutoCropArea" :center="cropCenter" :highlight="cropHighlight" :crop-box-moving="cropBoxMoving" @cropend="cropImage" ></vue-cropper> <button @click="getCroppedImage">裁剪图片</button> </div> </template> <script> import VueCropper from 'vue-cropper' export default { components: { VueCropper }, data() { return { imageUrl: '', // 需要裁剪的图片路径 cropAspectRatio: 1 / 1, // 裁剪框的宽高比例 cropAutoCropArea: 0.8, // 裁剪框自动缩放比例 cropCenter: false, // 裁剪框是否居 cropHighlight: true, // 裁剪框是否高亮显示 cropBoxMoving: true, // 裁剪框是否可以移动 cropDragMode: 'crop', // 裁剪框拖拽模式:crop-裁剪,move-移动,none-禁止操作 croppedImage: '' // 裁剪后的图片 } }, methods: { cropImage() { // 裁剪结束后的回调函数 }, getCroppedImage() { // 获取裁剪后的图片 this.croppedImage = this.$refs.cropper.getCroppedCanvas().toDataURL() } } } </script> ``` 其,`imageUrl`为需要裁剪的图片路径,`cropAspectRatio`为裁剪框的宽高比例,`cropAutoCropArea`为裁剪框自动缩放比例,`cropCenter`为裁剪框是否居,`cropHighlight`为裁剪框是否高亮显示,`cropBoxMoving`为裁剪框是否可以移动,`cropDragMode`为裁剪框拖拽模式,`croppedImage`为裁剪后的图片。 在`getCroppedImage`方法使用`this.$refs.cropper.getCroppedCanvas().toDataURL()`获取裁剪后的图片数据,然后可以将其保存到服务器或者直接在页面上显示。 以上就是使用Vue-Cropper插件实现图片裁剪的方法。当然,还有其他的图片裁剪插件可以使用,不过大同小异。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值