【图像标注】使用vue3实现图像标注功能

最近没事情想写一个图像标注功能,本来是想基于Canvs开发,结果发现很多事情无法实现,或者做起来比较消耗性能,于是就想出了用div来画框的方法。后续会对其封装成一个npm插件,希望可以帮到有用的小伙伴。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现图像标注功能可以使用一些开源的 JavaScript 库来帮助实现,比如 `fabric.js` 或 `Konva.js` 等。下面是使用 `Konva.js` 实现图像标注的简单示例: 1. 安装 `konva` 库: ```bash npm install konva ``` 2. 在 Vue3 中引入 `konva` 库: ```javascript import Konva from 'konva' ``` 3. 在 Vue3 中创建一个 `Konva.Stage` 组件,用于放置图像标注: ```vue <template> <div id="app"> <v-stage ref="stage" :config="stageConfig"> <v-layer> <!-- 图像 --> <v-image :config="imageConfig" @load="handleImageLoad" /> <!-- 标注 --> <v-rect v-for="(rect, index) in rects" :key="index" :config="rect" /> </v-layer> </v-stage> </div> </template> <script> import Konva from 'konva' export default { name: 'App', data() { return { stageConfig: { width: 800, height: 600 }, imageConfig: { image: 'path/to/image.jpg', width: 800, height: 600 }, rects: [] } }, methods: { handleImageLoad(image) { // 创建一个标注 const rect = new Konva.Rect({ x: 50, y: 50, width: 100, height: 100, fill: 'rgba(255, 0, 0, 0.5)', draggable: true }) // 将标注添加到 rects 数组中 this.rects.push(rect) // 将标注添加到图层中 this.$refs.stage.getStage().findOne('Layer').add(rect) } } } </script> ``` 在这个示例中,我们创建了一个 `Konva.Stage` 组件,并在其中添加了一个 `Konva.Image` 组件用于展示图像,以及一个 `Konva.Rect` 组件用于标注。在 `imageConfig` 中指定图像的路径、宽度和高度,在 `handleImageLoad` 中创建一个 `Konva.Rect` 组件,并将其添加到 `rects` 数组中,最后将其添加到图层中。 这只是一个简单的示例,您可以根据自己的需求对其进行更多的定制和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SoberChi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值