Text justification issue with Overlay.drawString

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Text justification issue with Overlay.drawString

Stein Rørvik
Thanks, text justification in ROIs work correctly now!

Here is another related issue:
I am trying to right justify text drawn with Overlay.drawString, but am unable to do so.
I cannot find any other way to get the text right justified.

See this example macro:

run("Boats (356K)");
TextStr = "This the first line of the text\nThis is line two";
xPos = getWidth/2;
yPos = round(getHeight/7);

setFont("SansSerif", 28, "antialiased");
setColor("red");
setJustification("right");
Overlay.drawString(TextStr, xPos, yPos*1);
//problem: text is not right justified as expected
Overlay.show;

Stein

I am using daily build ImageJ 1.52e with Java 1.6 on Windows 7/64-bit.


-----Original Message-----
From: ImageJ Interest Group <[hidden email]> On Behalf Of Wayne Rasband
Sent: 10. juli 2018 07:12
To: [hidden email]
Subject: Re: Wrong text justification in ROIs

> On Jul 9, 2018, at 8:45 AM, Stein Rørvik <[hidden email]> wrote:
>
> There is an issue with using Right justified text in ROIs.
> This only works if the fill color is set; it does not work with a transparent fill.
> This macro reproduces the issue; textStr3 is overlaid wrongly:

This bug is fixed in the 1.52e58 daily build.

-wayne


> textXpos = 300;
>
> textStr1 = "Text\nLeft justified";
> textYpos1 = 100;
>
> textStr2 = "Text\nLeft justified";
> textYpos2 = 200;
>
> textStr3 = "Text\nRight justified";
> textYpos3 = 300;
>
> textStr4 = "Text\nRight justified";
> textYpos4 = 400;
>
> run("Boats (356K)");
> setFont("Serif", 36, "antialiased");
>
> makeText(textStr1, textXpos, textYpos1); run("Properties... ",
> "name=test stroke=red justification=Left fill=none");
> Overlay.addSelection(); //correct position
>
> makeText(textStr2, textXpos, textYpos2); run("Properties... ",
> "name=test stroke=red justification=Left fill=blue");
> Overlay.addSelection(); //correct position
>
> makeText(textStr3, textXpos, textYpos3); run("Properties... ",
> "name=test stroke=yellow justification=Right fill=none");
> Overlay.addSelection(); //wrong position
>
> makeText(textStr4, textXpos, textYpos4); run("Properties... ",
> "name=test stroke=yellow justification=Right fill=blue");
> Overlay.addSelection(); //correct position
>
> run("Select None");
> Overlay.show;
> updateDisplay;
>
> I am using daily build ImageJ 1.52e with Java 1.6 on Windows 7/64-bit.
>
> Stein

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html