当前位置: 首页 > news >正文

基于cornerstone3D的dicom影像浏览器 第二十八章 LabelTool文字标记,L标记,R标记及标记样式设置

文章目录

  • 前言
  • 一、L标记、R标记
  • 二、修改工具样式
    • 1. 样式的四种级别
    • 2. 导入annotation
    • 3. 示例1 - 修改toolGroup中的样式
    • 4. 示例2 - 修改viewport中的样式
  • 三、可配置样式


前言

cornerstone3D 中的文字标记工具LabelTool,在添加文字标记时会弹出对话框让用户输入文字,所以可以添加任意文字。
本章通过设置LabelTool的getTextCallback函数,使用户可以直接添加指定的文字,不再弹出输入文字的对话框,从而实现L标记,R标记。
另外介绍标记工具的样式设置方法,以改变工具的颜色、文字等。
效果如下:
在这里插入图片描述


一、L标记、R标记

toolGroup调用setToolConfiguration函数,设置LabelTool工具的getTextCallback为自定义函数。

activeLabelTool(type) {toolGroup.setToolActive(type, {[{ mouseButton: MouseBindings.Primary }]});if (type==="Label-L" || type==="Label-R") {const text = type.split("-")[1];toolGroup.setToolConfiguration(LabelTool.toolName,{getTextCallback: fn => {return fn(text);},});} else if (type==="Label") {// 恢复LabelTool默认回调函数toolGroup.setToolConfiguration(LabelTool.toolName,{getTextCallback: fn => {return fn(prompt("Enter your annotation:"));}});}
}

二、修改工具样式

1. 样式的四种级别

cornerstone3D 中提供四种级别的标注样式修改方法:

  1. 单个标注样式(需提供annotationUID),优先级最高:set/getAnnotationToolStyle
  2. viewport中所有标注样式,优先级次之:set/getViewportToolStyle
  3. toolGroup中所有标注样式,优先级又次之:set/getToolGroupToolStyle
  4. 默认所有标注样式,优先级最低:set/getDefaultToolStyle

每种级别中又可指定设置单个Tool的样式或所有Tool的样式,如:

annotation.config.style.setToolGroupToolStyles(toolGroupId, { // 修改LabelTool字体[LabelTool.toolName]: { textBoxFontSize: "28px" } // 修改LengthTool字体[Length.toolName]: { textBoxFontSize: "20px" }// 修改toolGroup中所有Tool字体global: { textBoxFontSize: "12px" }}
);

2. 导入annotation

import * as cornerstoneTools from "@cornerstonejs/tools";const {annotation
} = cornerstoneTools;

3. 示例1 - 修改toolGroup中的样式

function initTools() {...// 操作cornerstoneTools.addTool(WindowLevelTool);cornerstoneTools.addTool(PanTool);cornerstoneTools.addTool(ZoomTool);cornerstoneTools.addTool(StackScrollTool);...// 修改toolGroup中的样式annotation.config.style.setToolGroupToolStyles(toolGroupId, { // 修改LabelTool字体[LabelTool.toolName]: { textBoxFontSize: "28px" },// 修改LengthTool字体[LengthTool.toolName]: { textBoxFontSize: "20px" },// 修改toolGroup中所有Tool字体global: { textBoxFontSize: "12px" }});
}

效果:
在这里插入图片描述

4. 示例2 - 修改viewport中的样式


function setVieportToolStyles(viewportId) {annotation.config.style.setViewportToolStyles(viewportId, {// 修改LabelTool字体[LabelTool.toolName]: { textBoxFontSize: "60px" },// 修改viewport中所有Tool字体global: { textBoxFontSize: "8px" }});
}

效果:
在这里插入图片描述

三、可配置样式

color;  
colorActive;  
colorHighlighted;  
colorHighlightedActive;  
colorHighlightedPassive;  
colorLocked;  
colorLockedActive;  
colorLockedPassive;  
colorPassive;  
colorSelected;  
colorSelectedActive;  
colorSelectedPassive;  
lineDash;  
lineDashActive;  
lineDashHighlighted;  
lineDashHighlightedActive;  
lineDashHighlightedPassive;  
lineDashLocked;  
lineDashLockedActive;  
lineDashLockedPassive;  
lineDashPassive;  
lineDashSelected;  
lineDashSelectedActive;  
lineDashSelectedPassive;  
lineWidth;  
lineWidthActive;  
lineWidthHighlighted;  
lineWidthHighlightedActive;  
lineWidthHighlightedPassive;  
lineWidthLocked;  
lineWidthLockedActive;  
lineWidthLockedPassive;  
lineWidthPassive;  
lineWidthSelected;  
lineWidthSelectedActive;  
lineWidthSelectedPassive;  
textBoxBackground;  
textBoxBackgroundActive;  
textBoxBackgroundHighlighted;  
textBoxBackgroundHighlightedActive;  
textBoxBackgroundHighlightedPassive;  
textBoxBackgroundLocked;  
textBoxBackgroundLockedActive;  
textBoxBackgroundLockedPassive;  
textBoxBackgroundPassive;  
textBoxBackgroundSelected;  
textBoxBackgroundSelectedActive;  
textBoxBackgroundSelectedPassive;  
textBoxColor;  
textBoxColorActive;  
textBoxColorHighlighted;  
textBoxColorHighlightedActive;  
textBoxColorHighlightedPassive;  
textBoxColorLocked;  
textBoxColorLockedActive;  
textBoxColorLockedPassive;  
textBoxColorPassive;  
textBoxColorSelected;  
textBoxColorSelectedActive;  
textBoxColorSelectedPassive;  
textBoxFontFamily;  
textBoxFontFamilyActive;  
textBoxFontFamilyHighlighted;  
textBoxFontFamilyHighlightedActive;  
textBoxFontFamilyHighlightedPassive;  
textBoxFontFamilyLocked;  
textBoxFontFamilyLockedActive;  
textBoxFontFamilyLockedPassive;  
textBoxFontFamilyPassive;  
textBoxFontFamilySelected;  
textBoxFontFamilySelectedActive;  
textBoxFontFamilySelectedPassive;  
textBoxFontSize;  
textBoxFontSizeActive;  
textBoxFontSizeHighlighted;  
textBoxFontSizeHighlightedActive;  
textBoxFontSizeHighlightedPassive;  
textBoxFontSizeLocked;  
textBoxFontSizeLockedActive;  
textBoxFontSizeLockedPassive;  
textBoxFontSizePassive;  
textBoxFontSizeSelected;  
textBoxFontSizeSelectedActive;  
textBoxFontSizeSelectedPassive;  
textBoxLinkLineDash;  
textBoxLinkLineDashActive;  
textBoxLinkLineDashHighlighted;  
textBoxLinkLineDashHighlightedActive;  
textBoxLinkLineDashHighlightedPassive;  
textBoxLinkLineDashLocked;  
textBoxLinkLineDashLockedActive;  
textBoxLinkLineDashLockedPassive;  
textBoxLinkLineDashPassive;  
textBoxLinkLineDashSelected;  
textBoxLinkLineDashSelectedActive;  
textBoxLinkLineDashSelectedPassive;  
textBoxLinkLineWidth;  
textBoxLinkLineWidthActive;  
textBoxLinkLineWidthHighlighted;  
textBoxLinkLineWidthHighlightedActive;  
textBoxLinkLineWidthHighlightedPassive;  
textBoxLinkLineWidthLocked;  
textBoxLinkLineWidthLockedActive;  
textBoxLinkLineWidthLockedPassive;  
textBoxLinkLineWidthPassive;  
textBoxLinkLineWidthSelected;  
textBoxLinkLineWidthSelectedActive;  
textBoxLinkLineWidthSelectedPassive;  

相关文章:

  • ArcGIS Pro 3.4 二次开发 - 公共设施网络
  • 3ds Max 渲染技术突破:一键解锁照片级真实感!
  • GC1809:高性能音频接收与转换芯片
  • 自动化办公集成工具:一站式解决文档处理难题
  • Django之表格上传
  • 浅谈 Linux 防火墙:从原理到实践
  • Neovim - 常用插件,提升体验(三)
  • 【虚拟机版本号】如果忘记了版本号,这样查找版本号
  • 【Linux】网络--数据链路层--以太网
  • 空间利用率提升90%!小程序侧边导航设计与高级交互实现
  • MPNet:旋转机械轻量化故障诊断模型详解python代码复现
  • 第二十四章 流程控制_ if分支
  • React 样式方案与状态方案初探
  • LeetCode 1356.根据数字二进制下1的数目排序
  • 重磅更新! 基于Gemini 2.5 Pro打造的AI智能体PlantUML-X上线!
  • VSCode主题定制:CSS个性化你的编程世界
  • 服务器CPU被WMI Provider Host系统进程占用过高,导致系统偶尔卡顿的排查处理方案
  • PostgreSQL 的扩展pg_prewarm
  • 高防服务器能够抵御哪些网络攻击呢?
  • 【Python 算法零基础 4.排序 ⑨ 堆排序】
  • web网站建设培训班/公司调查公司
  • 广告推广文案/口碑优化seo
  • 卖建材的网站有哪些/会员制营销
  • 二维码生成短链接/seo程序专员
  • 网站设计评价指标/在线生成个人网站免费
  • 做电器推广的网站/百度上传自己个人简介