Annotations 如何获取批注ID并设置批注的大小和字体?

Annotations 如何获取批注ID并设置批注的大小和字体?,annotations,dm-script,Annotations,Dm Script,我创建了一些注释,但我不知道如何控制注释的大小和字体,命令setannotationsize和setannotationfont询问注释ID,没有解释如何获取注释ID image img1:=getfrontimage() img1.createtextannotation(50,50,"this is HRTEM image") setAnnotationFont( Image, Number annotationID, String fontName ) void SetAnnotat

我创建了一些注释,但我不知道如何控制注释的大小和字体,命令
setannotationsize
setannotationfont
询问注释ID,没有解释如何获取注释ID

image img1:=getfrontimage()
img1.createtextannotation(50,50,"this is HRTEM image")


setAnnotationFont( Image, Number annotationID, String fontName ) 
void SetAnnotationSize( Image, Number annotationID, Number size )
简单的回答是: 使用任何注释创建命令时,您可以看到该方法的签名有一个数字返回值,例如:

realnumbercreateTextAnnotation(基本图像img、realnumbertop、realnumberleft、字符串文本)

返回的值是您的注释ID


然而,还有更多的故事。。。 DM脚本通常为初学者提供简化的包装器命令,这些命令只公开部分功能。例如,简化的
Get/Set…Note()
type命令就是这种情况。您提到的注释命令也是如此。这些简化的命令使得只使用一个命令就可以更容易地实现简单的事情,但是如果您想要更多,最好转到适当的“底层”脚本对象和对象层次结构

注释实际上是
Component
对象,因此您需要参考
components
上的帮助部分以了解所需的所有命令

在那里(在底部),您可以找到如下命令

Component NewTextAnnotation(数字左边、数字顶端、字符串文本、数字大小)

这些命令不返回ID,而是返回组件本身。然后,您可以使用所述的任何命令修改
组件
,这些命令将
组件
作为参数,例如f.e.:

void ComponentSetForegroundColor(组件组件,编号为红色,编号为绿色,编号为蓝色)

但是如何将
组件添加到图像中?你不能。因为
图像
实际上只是一个数字数组,所以可以以不同的方式显示:例如,作为
光栅显示
或作为
电子表格显示
或作为
表面打印显示

您真正要做的是将
组件添加到图像的显示中!
每个(显示的)
图像
对象都有一个
图像显示
对象。因此,将
组件
添加到
图像显示
对象中

现在,面向对象编码的美妙之处在于,
imageDisplay
对象同时也是
组件
对象。因此
组件帮助中的命令也适用于
图像显示
。这些命令包括获取/设置/添加/删除子级的命令

总而言之:添加注释的完整过程是:创建注释(作为
组件
)。获取
图像
。从图像中获取
图像显示
(该图像也是
组件
)。将注释
组件
作为子项添加到
图像显示
组件
。以下是一个例子:

image img := RealImage( "Test",4,512,512)
img.ShowImage()
imageDisplay disp = img.ImageGetImageDisplay(0)
component arrow = NewArrowAnnotation(110,110,280,400)
arrow.ComponentSetForeGroundColor(1,1,0)
disp.ComponentAddChildAtEnd( arrow )
简单的回答是: 使用任何注释创建命令时,您可以看到该方法的签名有一个数字返回值,例如:

realnumbercreateTextAnnotation(基本图像img、realnumbertop、realnumberleft、字符串文本)

返回的值是您的注释ID


然而,还有更多的故事。。。 DM脚本通常为初学者提供简化的包装器命令,这些命令只公开部分功能。例如,简化的
Get/Set…Note()
type命令就是这种情况。您提到的注释命令也是如此。这些简化的命令使得只使用一个命令就可以更容易地实现简单的事情,但是如果您想要更多,最好转到适当的“底层”脚本对象和对象层次结构

注释实际上是
Component
对象,因此您需要参考
components
上的帮助部分以了解所需的所有命令

在那里(在底部),您可以找到如下命令

Component NewTextAnnotation(数字左边、数字顶端、字符串文本、数字大小)

这些命令不返回ID,而是返回组件本身。然后,您可以使用所述的任何命令修改
组件
,这些命令将
组件
作为参数,例如f.e.:

void ComponentSetForegroundColor(组件组件,编号为红色,编号为绿色,编号为蓝色)

但是如何将
组件添加到图像中?你不能。因为
图像
实际上只是一个数字数组,所以可以以不同的方式显示:例如,作为
光栅显示
或作为
电子表格显示
或作为
表面打印显示

您真正要做的是将
组件添加到图像的显示中!
每个(显示的)
图像
对象都有一个
图像显示
对象。因此,将
组件
添加到
图像显示
对象中

现在,面向对象编码的美妙之处在于,
imageDisplay
对象同时也是
组件
对象。因此
组件帮助中的命令也适用于
图像显示
。这些命令包括获取/设置/添加/删除子级的命令

总而言之:添加注释的完整过程是:创建注释(作为
组件
)。获取
图像
。从图像中获取
图像显示
(该图像也是
组件
)。将注释
组件
作为子项添加到
图像显示
组件
。以下是一个例子:

image img := RealImage( "Test",4,512,512)
img.ShowImage()
imageDisplay disp = img.ImageGetImageDisplay(0)
component arrow = NewArrowAnnotation(110,110,280,400)
arrow.ComponentSetForeGroundColor(1,1,0)
disp.ComponentAddChildAtEnd( arrow )