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

如何用cornerstone-tools清除所有标注?现有代码无效求解决

清除cornerstone-tools所有标注的正确方法

原代码问题分析

你之前的代码存在两处核心问题:

  • 错误遍历了全局的cornerstoneTools.toolState.data,而非当前元素对应工具的标注数据
  • 在forEach循环中直接修改集合,容易导致遍历异常

正确实现方式

以下是两种可靠的清除所有标注的方案:

方法一:按工具类型批量清除

遍历当前元素上所有已激活的工具类型,调用官方方法清除对应标注:

function removeAllAnnotations(element) {
  // 获取当前元素关联的所有工具类型
  const toolNames = Object.keys(cornerstoneTools.toolState.data[element] || {});
  
  toolNames.forEach(toolName => {
    // 清除该工具类型下的所有标注
    cornerstoneTools.clearToolState(element, toolName);
  });
  
  // 触发图像重绘,让标注消失
  cornerstone.updateImage(element);
}

方法二:直接重置元素工具状态

如果不需要保留任何工具状态数据,可直接删除元素对应的整个工具状态对象:

function removeAllAnnotations(element) {
  if (cornerstoneTools.toolState.data[element]) {
    // 彻底删除当前元素的所有工具状态
    delete cornerstoneTools.toolState.data[element];
  }
  
  cornerstone.updateImage(element);
}

关键提示

  • clearToolState是cornerstone-tools官方提供的清除工具标注的方法,比手动操作toolState更安全
  • 无论哪种方法,修改工具状态后必须调用cornerstone.updateImage触发重绘,才能让标注从界面上消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:24:19