I'm adding annotations to an image and need to adjust the positioning anchor to the top right corner of the annotation. Currently, I know how to use the top left corner as the anchor, but after trying various commands, I haven't been able to achieve the same with the top right corner.
Has anyone successfully set the annotation's positioning anchor to the top right corner, or can provide guidance or examples on how to do so?
Any help would be greatly appreciated!
The best way to arrange annotations is to use the three commands:
void ComponentTransformCoordinates( Component comp, Number off_x, Number off_y, Number scale_x, Number scale_y )
void ComponentSetControlPoint( Component comp, Number loc, Number x, Number y, Number restrict_style )
void ComponentPositionAroundPoint( Component comp, Number new_x, Number new_y, Number rel_x, Number rel_y, Boolean horz, Boolean vert )
For your specific question, you would want to use the 3nd command.
You specify the point of the annotation using rel_x
and rel_y
. (1,0) would be the top-right corner. Then you specify the coordinates to which this point should be moved as new_x
and new_y
. The two remaining Boolean parameters are used to limit the movement to horizontal or vertical only.
See this example:
image test := RealImage("Test",4,1000,1000) = icol
test.ShowImage()
imageDisplay disp = test.ImageGetImageDisplay(0)
component rectAnno = NewBoxAnnotation(200,200,800,800)
rectAnno.ComponentSetBackgroundColor(1,0,0)
rectAnno.ComponentSetForegroundColor(0,1,0)
rectAnno.ComponentSetDrawingMode(1)
rectAnno.ComponentSetFillMode(1)
disp.ComponentAddChildAtEnd( rectAnno )
// Example of shifting the top-right corner of the annotation
// to the top-right corner of the image and offset -5/-5
OKDialog("Now Shift")
number TRUE = 1
number FALSE = 0
rectAnno.ComponentPositionAroundPoint(995,5,1,0,TRUE, TRUE)
The F1 help documentation has another useful example script here:
The meaning of the location control point is found in the F1 documentation here: