用于确定/更改比例尺长度/高度比的代码/命令?

时间:2018-01-12 21:43:10

标签: dm-script

我想通过DM脚本来调整图像中比例尺的长度/高度比。如下面的代码所示,我可以通过更改“scalebar.componentsetfontinfo(”Microsoft Sans Serif“,0,fontsize)”来调整字体大小,但我不知道如何更改矩形的形状(长度/高度比)构成比例尺。是否有任何代码/命令可以实现这一点?谢谢,

image front:= getfrontimage()

imagedisplay imgdisp = front.imagegetimagedisplay(0)

number nobar = imgdisp.componentcountchildrenoftype(31)

number fontsize = 20

imgdisp.applydatabar(0)

component scalebar = imgdisp.componentgetnthchildoftype(31,0)

scalebar.componentsetfontinfo(“Microsoft Sans Serif”,0,fontsize)

scalebar.componentsetdrawingmode(1)

1 个答案:

答案 0 :(得分:1)

选择比例尺时,您会注意到绿色点显示该组件的矩形。

enter image description here

您可以像控制任何组件矩形一样控制该矩形:

number kScaleBar = 31
image img := GetFrontImage()
imageDisplay disp = img.ImageGetImageDisplay(0)
component scaleBar = disp.ComponentGetNthChildOfType( kScaleBar, 0 )
number t,l,b,r
scaleBar.ComponentGetRect(t,l,b,r)
Result("\n Current rect: [" + t + "/" + l + "/" + b + "/" + r )
number sx, sy
img.GetSize( sx, sy )
// Set centered half at bottom
l = sx*1/4
r = sx*3/4
t = sy*17/20
b = sy*19/20
scaleBar.ComponentSetRect(t,l,b,r)

注意,您无法明确指定比例尺的长度,它将始终“捕捉”到边界框内的有意义的部分,具体取决于图像校准。 设置边界矩形也将覆盖字体大小,而设置font-size将覆盖边界rect的高度。