文章目錄
- 前言
- 一、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 中提供四種級別的標注樣式修改方法:
- 單個標注樣式(需提供annotationUID),優先級最高:set/getAnnotationToolStyle
- viewport中所有標注樣式,優先級次之:set/getViewportToolStyle
- toolGroup中所有標注樣式,優先級又次之:set/getToolGroupToolStyle
- 默認所有標注樣式,優先級最低: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;