When combining setJustification("Right") or ("Left") and Overlay.drawString(...
the vertical justification is too high when the horizontal justification is "Left". They should have been the same. setJustification("Right") gives a correct result. Try this macro: -------- run("Close All"); xSize = 200; ySize = 200; newImage("Untitled", "8-bit black", xSize, ySize, 1); setLocation(100, 100); setFont("SanSerif", 12); setLineWidth(1); xPos = xSize/2; yPos = ySize/2; setColor("Red"); Overlay.drawLine(xPos, 0, xPos, ySize); Overlay.drawLine(0, yPos, xSize, yPos); Overlay.show; setColor("Yellow"); setJustification("Left"); Overlay.drawString("Left adjusted", xPos, yPos); setJustification("Right"); Overlay.drawString("Right adjusted", xPos, yPos); Overlay.show; run("Duplicate...", " "); run("Set... ", "zoom=200"); setLocation(350, 100); run("Duplicate...", " "); run("Set... ", "zoom=400"); setLocation(800, 100); //the Right aligned text is drawn correctly //when zooming in, the Left adjusted text moves upwards relative to the previous position //when zooming in, the Right adjusted text stays in the same position as the flattened version -------- Also, sometimes run("Set... ", "zoom=400") does not display correctly, you must zoom back to 100% and rezoom to update the image. I am using daily build ImageJ 1.52h with Java 1.6 on Windows 7/64-bit. Stein -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
> On Sep 28, 2018, at 3:50 AM, Stein Rørvik <[hidden email]> wrote:
> > When combining setJustification("Right") or ("Left") and Overlay.drawString(... > the vertical justification is too high when the horizontal justification is "Left". > They should have been the same. setJustification("Right") gives a correct result. This bug is fixed in the latest ImageJ daily build (1.52h18). The problem with saving and reopening images with overlays containing right-justified text is also fixed. -wayne > > Try this macro: > -------- > > run("Close All"); > xSize = 200; > ySize = 200; > newImage("Untitled", "8-bit black", xSize, ySize, 1); > setLocation(100, 100); > setFont("SanSerif", 12); > setLineWidth(1); > xPos = xSize/2; > yPos = ySize/2; > > setColor("Red"); > Overlay.drawLine(xPos, 0, xPos, ySize); > Overlay.drawLine(0, yPos, xSize, yPos); > Overlay.show; > > setColor("Yellow"); > setJustification("Left"); > Overlay.drawString("Left adjusted", xPos, yPos); > setJustification("Right"); > Overlay.drawString("Right adjusted", xPos, yPos); > Overlay.show; > > run("Duplicate...", " "); > run("Set... ", "zoom=200"); > setLocation(350, 100); > > run("Duplicate...", " "); > run("Set... ", "zoom=400"); > setLocation(800, 100); > > //the Right aligned text is drawn correctly > > //when zooming in, the Left adjusted text moves upwards relative to the previous position > //when zooming in, the Right adjusted text stays in the same position as the flattened version > > -------- > > Also, sometimes run("Set... ", "zoom=400") does not display correctly, you must zoom back to 100% and rezoom to update the image. > > I am using daily build ImageJ 1.52h with Java 1.6 on Windows 7/64-bit. > > > Stein -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Thanks, I have tested and found both fixes to work well.
The text is now drawn a little higher with setJustification("Right") than previously; the new placement is more correct. The lower outer boundary of the text now matches the requested vertical position. Stein -----Original Message----- From: ImageJ Interest Group <[hidden email]> On Behalf Of Wayne Rasband Sent: 02. oktober 2018 03:27 To: [hidden email] Subject: Re: Overlay.drawString has wrong vertical position with Left justification > On Sep 28, 2018, at 3:50 AM, Stein Rørvik <[hidden email]> wrote: > > When combining setJustification("Right") or ("Left") and Overlay.drawString(... > the vertical justification is too high when the horizontal justification is "Left". > They should have been the same. setJustification("Right") gives a correct result. This bug is fixed in the latest ImageJ daily build (1.52h18). The problem with saving and reopening images with overlays containing right-justified text is also fixed. -wayne > > Try this macro: > -------- > > run("Close All"); > xSize = 200; > ySize = 200; > newImage("Untitled", "8-bit black", xSize, ySize, 1); setLocation(100, > 100); setFont("SanSerif", 12); setLineWidth(1); xPos = xSize/2; yPos = > ySize/2; > > setColor("Red"); > Overlay.drawLine(xPos, 0, xPos, ySize); Overlay.drawLine(0, yPos, > xSize, yPos); Overlay.show; > > setColor("Yellow"); > setJustification("Left"); > Overlay.drawString("Left adjusted", xPos, yPos); > setJustification("Right"); Overlay.drawString("Right adjusted", xPos, > yPos); Overlay.show; > > run("Duplicate...", " "); > run("Set... ", "zoom=200"); > setLocation(350, 100); > > run("Duplicate...", " "); > run("Set... ", "zoom=400"); > setLocation(800, 100); > > //the Right aligned text is drawn correctly > > //when zooming in, the Left adjusted text moves upwards relative to > the previous position //when zooming in, the Right adjusted text stays > in the same position as the flattened version > > -------- > > Also, sometimes run("Set... ", "zoom=400") does not display correctly, you must zoom back to 100% and rezoom to update the image. > > I am using daily build ImageJ 1.52h 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 |
Free forum by Nabble | Edit this page |