var pencilWidth=1, eraserWidth=10, leftClick=16, alt=8; var brushWidth = 10; //call("ij.Prefs.get", "startup.brush", "10"); var floodType = "8-connected"; //call("ij.Prefs.get", "startup.flood", "8-connected"); var editToolWidth = 100; macro "Pencil Tool - C037L494fL4990L90b0Lc1c3L82a4Lb58bL7c4fDb4L5a5dL6b6cD7b" { getCursorLoc(x, y, z, flags); if (flags&alt!=0) setColorToBackgound(); draw(pencilWidth); } macro "Paintbrush Tool - C037La077Ld098L6859L4a2fL2f4fL3f99L5e9bL9b98L6888L5e8dL888c" { getCursorLoc(x, y, z, flags); if (flags&alt!=0) setColorToBackgound(); draw(brushWidth); } macro "Flood Fill Tool -C037B21P085373b75d0L4d1aL3135L4050L6166D57D77D68La5adLb6bcD09D94" { requires("1.34j"); setupUndo(); getCursorLoc(x, y, z, flags); if (flags&alt!=0) setColorToBackgound(); floodFill(x, y, floodType); } function draw(width) { setupUndo(); getCursorLoc(x, y, z, flags); setLineWidth(width); moveTo(x,y); x2=-1; y2=-1; while (true) { getCursorLoc(x, y, z, flags); if (flags&leftClick==0) exit(); if (x!=x2 || y!=y2) lineTo(x,y); x2=x; y2 =y; wait(10); } } function setColorToBackgound() { c = getValue("background.color"); setColor((c>>16)&0xff, (c>>8)&0xff, c&0xff); } // Runs when the user double-clicks on the pencil tool icon macro 'Pencil Tool Options...' { pencilWidth = getNumber("Pencil Width (pixels):", pencilWidth); } // Runs when the user double-clicks on the paint brush tool icon macro 'Paintbrush Tool Options...' { brushWidth = getNumber("Brush Width (pixels):", brushWidth); call("ij.Prefs.set", "startup.brush", brushWidth); } // Runs when the user double-clicks on the flood fill tool icon macro 'Flood Fill Tool Options...' { Dialog.create("Flood Fill Tool"); Dialog.addChoice("Flood Type:", newArray("4-connected", "8-connected"), floodType); Dialog.show(); floodType = Dialog.getChoice(); call("ij.Prefs.set", "startup.flood", floodType); } // This tool draws arrows. Double click on the // tool icon to set the line width. Double click // on the eye dropper tool to define the color. // Press "z" to undo. var lineWidth=2; macro "Arrow Tool -C037L1ee1L65e1La9e1" { leftButton=16; rightButton=4; alt=8; getCursorLoc(x, y, z, flags); xstart = x; ystart = y; x2=x; y2=y; setOption("disablePopupMenu", true); while (flags!=0) { getCursorLoc(x, y, z, flags); if (x!=x2 || y!=y2) makeLine(xstart, ystart, x, y); x2=x; y2=y; wait(10); } setOption("disablePopupMenu", false); if (x!=xstart || y!=ystart) drawArrow(xstart, ystart, x, y, lineWidth); run("Select None"); } function drawArrow(x1, y1, x2, y2, lineWidth) { setupUndo(); setLineWidth(lineWidth); size = 12+12*lineWidth*0.25; dx = x2-x1; dy = y2-y1; ra = sqrt(dx*dx + dy*dy); dx /= ra; dy /= ra; x3 = round(x2-dx*size); y3 = round(y2-dy*size); r = 0.3*size; x4 = round(x3+dy*r); y4 = round(y3-dx*r); x5 = round(x3-dy*r); y5 = round(y3+dx*r); drawLine(x1, y1, x2, y2); if (!isKeyDown("alt")) {moveTo(x4,y4); lineTo(x2,y2); lineTo(x5,y5);} } // This is a tool macro similar to the spray can tool in NIH Image. // Double-click on the tool icon to set the spray width, dot size // and flow rate. var sprayCanWidth=75, sprayCanDotSize=1, sprayCanRate=6; macro 'Spray Can Tool - C037D20D22D24D41D43D62D82Da2L93b3D84Dc4L75d5L757f Ld5dfLa7d7LabdbLa9d9LacdcLa7ac' { setLineWidth(sprayCanDotSize); radius=sprayCanWidth/2; radius2=radius*radius; start = getTime(); autoUpdate(false); n = 5*exp(0.9*(10-sprayCanRate)); if (n<=5) n = 0; while (true) { getCursorLoc(x, y, z, flags); if (flags&16==0) exit(); x2 = (random()-0.5)*sprayCanWidth; y2 = (random()-0.5)*sprayCanWidth; if (x2*x2+y2*y2start+50) { updateDisplay(); start = getTime(); } } for (i=0; i10) sprayCanRate = 10; } // ImageJ runs this macro when user double-clicks on the tool icon macro "Arrow Tool Options" { lineWidth = getNumber("Line Width:", lineWidth); } macro "Set Drawing Color..."{ run("Color Picker..."); }