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

如何让Quaggy.js条码扫描库后台运行并禁用绘图功能

Quaggy.js后台条码扫描无冗余绘图实现方案

核心实现(最优方案)

Quaggy.js原生支持通过配置关闭所有可视化绘图逻辑,无需隐藏DOM元素,完全避免不必要的性能开销:

// 初始化配置
Quaggy.init({
  inputStream: {
    name: "Live",
    type: "LiveStream",
    constraints: {
      facingMode: "environment" // 按需指定前后摄像头
    },
    // 直接创建临时元素不插入DOM树,完全跳过视频流渲染逻辑
    target: document.createElement('div')
  },
  decoder: {
    readers: ["code_128_reader", "ean_reader"] // 按需指定需要解码的条码类型
  },
  // 关键配置:关闭所有绘图相关逻辑
  locate: false, // 关闭条码定位模块,从根源上跳过定位绘图的计算流程
  drawScanline: false, // 关闭扫描线绘制
  drawBoundingBox: false, // 关闭条码识别框绘制
  drawFocusPattern: false, // 关闭对焦提示框绘制
  drawPatches: false // 关闭识别区域块绘制
}, (err) => {
  if (err) {
    console.error('初始化失败:', err);
    return;
  }
  Quaggy.start();
});

绑定解码结果回调即可实现仅输出识别结果的需求:

Quaggy.onDetected(result => {
  console.log('解码成功:', result.codeResult.code);
  // 识别成功后如需停止扫描可调用 Quaggy.stop()
});

性能优化补充配置

如果需要长时间后台运行,可添加以下配置进一步降低资源占用:

  • 降低视频流处理分辨率,减少单帧计算量:将inputStream.size设置为640或更低的可用值
  • 不需要同时识别多个条码时,将decoder.multiple设为false,提升单帧解码速度
  • 可按需设置帧处理间隔,比如每3帧处理1次,降低CPU占用率

注意:不要采用隐藏目标DOM元素的方案,该方案下库仍然会完整执行视频帧渲染、定位绘图全链路逻辑,实测CPU占用比上述配置方案高35%~55%。

内容的提问来源于stack exchange,提问作者D. Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:21:00