You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ToolJet中实现图片边界框绘制功能?

在ToolJet中实现图片边界框绘制功能的方案

一、ToolJet内的实现方式

ToolJet没有现成的边界框绘制组件,但可以通过**自定义组件(Custom Component)**集成第三方工具实现:

  • 借助ToolJet的自定义组件能力,嵌入包含边界框绘制逻辑的HTML/JS代码
  • 可将绘制的边界框坐标同步到ToolJet应用状态,方便与分类按钮、数据存储等组件联动

二、优先推荐的JavaScript库

1. Fabric.js

  • 功能完备的Canvas库,支持矩形、多边形等多种形状的绘制、拖拽、缩放与编辑,完全适配图片标注场景
  • 上手门槛低,直接在ToolJet自定义组件中引入即可快速实现边界框创建、调整及坐标获取
  • 核心代码示例:
    // 初始化画布
    const canvas = new fabric.Canvas('image-canvas');
    // 设置背景图片
    fabric.Image.fromURL('目标图片地址', function(img) {
      canvas.setBackgroundImage(img, canvas.renderAll.bind(canvas));
    });
    // 监听鼠标事件绘制矩形框
    let activeRect = null;
    canvas.on('mouse:down', function(o) {
      const pointer = canvas.getPointer(o.e);
      activeRect = new fabric.Rect({
        left: pointer.x,
        top: pointer.y,
        width: 0,
        height: 0,
        fill: 'rgba(255, 0, 0, 0.3)',
        stroke: 'red',
        strokeWidth: 2
      });
      canvas.add(activeRect);
    });
    canvas.on('mouse:move', function(o) {
      if (!activeRect) return;
      const pointer = canvas.getPointer(o.e);
      activeRect.set({
        width: pointer.x - activeRect.left,
        height: pointer.y - activeRect.top
      });
      canvas.renderAll();
    });
    canvas.on('mouse:up', function() {
      activeRect = null;
      // 此处可将边界框坐标存入ToolJet应用状态
      const rects = canvas.getObjects().filter(obj => obj.type === 'rect');
      const coords = rects.map(r => ({ x: r.left, y: r.top, w: r.width, h: r.height }));
      // 同步到ToolJet:window.postMessage({ type: 'setVariable', variable: 'bboxCoords', value: coords }, '*');
    });
    

2. Konva.js

  • 轻量级高性能2D绘图库,支持图层管理,可清晰区分图片层与边界框层,坐标数据获取直观,适合复杂交互场景

3. Cropper.js

  • 主打图片裁剪,但可快速实现矩形边界框的绘制与拖拽调整,适合仅需矩形标注的简单场景

三、适用的Python库(后端辅助)

若需后端处理边界框数据或批量生成标注图片,可选用:

  • OpenCV:通过cv2.rectangle()绘制边界框,适合处理前端传递的坐标数据、生成标注后图片
  • Pillow:Python Imaging Library,支持在图片上绘制矩形、多边形,适合简单的标注结果导出

内容的提问来源于stack exchange,提问作者Alcibiades

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:34:49