run("Close All"); print("\\Clear"); newImage("Img", "8-Bit White", 1000, 1000, 1); lWidth = 22; x1 = 100; y1 =100; x2 = 200; y2=120; run("Line Width...", "line=" + lWidth); time = getTime; for (jj = 1; jj < 200; jj++){ makeLine(x1, y1, x2, y2); run("Line to Area"); } print ((getTime - time)/1000); run("Invert"); time = getTime; for (jj = 1; jj < 200; jj++){ makeLine(x1, y1, x2, y2); lineToRect(x1, y1, x2, y2, lWidth); } print ((getTime - time)/1000); //creates a 4-corner polygon roi from a line with width ww function lineToRect(xa, ya, xb, yb, ww){ dx = xb - xa; dy = yb - ya; len= sqrt(dx * dx + dy * dy); ya1 = ya - dx * ww/len/2; ya2 = ya + dx * ww/len/2; xa1 = xa + dy * ww/len/2; xa2 = xa - dy * ww/len/2; yb1 = yb - dx * ww/len/2; yb2 = yb + dx * ww/len/2; xb1 = xb + dy * ww/len/2; xb2 = xb - dy * ww/len/2; makePolygon(xa1, ya1, xa2, ya2, xb2, yb2 , xb1, yb1); }