// 1. Mit dem bereits offenen Bild arbeiten if (nImages == 0) exit("Kein Bild geöffnet!"); originalTitle = getTitle(); // 2. Bildinformationen vom offenen Bild beziehen path = getInfo("image.directory"); filename = getTitle(); // Sicherstellen, dass ein Punkt im Dateinamen existiert dotIndex = lastIndexOf(filename, "."); if (dotIndex != -1) { base = substring(filename, 0, dotIndex); ext = substring(filename, dotIndex + 1); } else { base = filename; ext = "tif"; } // 3. Vergrößerung wählen Dialog.create("Waehle Vergroesserung"); Dialog.addChoice("Vergroesserung:", newArray("6.3x", "16x", "25x", "40x", "63x", "100x"), "63x"); Dialog.show(); vergroesserung = Dialog.getChoice(); // 4. Pixel pro um bestimmen if (vergroesserung == "6.3x") pixel_pro_um = 1.87; else if (vergroesserung == "16x") pixel_pro_um = 4.75; else if (vergroesserung == "25x") pixel_pro_um = 7.50; else if (vergroesserung == "40x") pixel_pro_um = 11.87; else if (vergroesserung == "63x") pixel_pro_um = 18.66; else if (vergroesserung == "100x") pixel_pro_um = 30.03; else pixel_pro_um = 1.0; // 5. Skalierung setzen run("Set Scale...", "distance=" + pixel_pro_um + " known=1 unit=um global"); // 6. Standard-Scalebar als Overlay einfügen width_um = 50; run("Scale Bar...", "width=" + width_um + " height=20 font=100 color=Black background=None location=[Lower Right] overlay"); // 7. Anpassung: Scalebar ändern oder behalten do { Dialog.create("Scalebar in Ordnung?"); Dialog.addChoice("Scalebar behalten oder aendern:", newArray("Ja", "Nein – 10 um", "Nein – 20 um", "Nein – 100 um", "Nein – 1000 um", "Nein – Eigener Wert"), "Ja"); Dialog.show(); entscheidung = Dialog.getChoice(); if (entscheidung != "Ja") { if (entscheidung == "Nein – 10 um") width_um = 10; else if (entscheidung == "Nein – 20 um") width_um = 20; else if (entscheidung == "Nein – 100 um") width_um = 100; else if (entscheidung == "Nein – 1000 um") width_um = 1000; else if (entscheidung == "Nein – Eigener Wert") { Dialog.create("Eigener Scalebar-Wert"); Dialog.addNumber("Breite der Scalebar in um:", width_um); Dialog.show(); width_um = Dialog.getNumber(); } run("Remove Overlay"); run("Scale Bar...", "width=" + width_um + " height=20 font=100 color=Black background=None location=[Lower Right] overlay"); } } while (entscheidung != "Ja"); // 8. Scalebar in Bild einbrennen (erzeugt ein neues Fenster) run("Flatten"); finalTitle = getTitle(); // 9. Speichern im ursprünglichen Verzeichnis newName = path + base + "_SB." + ext; if (ext == "tif" || ext == "tiff") { saveAs("Tiff", newName); } else if (ext == "jpg" || ext == "jpeg") { run("RGB Color"); saveAs("Jpeg", newName); } else { saveAs("Tiff", path + base + "_SB.tif"); } // 10. CLEANUP: Alles schließen außer dem finalen File // Das ursprüngliche Bild schließen if (isOpen(originalTitle)) { selectWindow(originalTitle); close(); } // Hilfsfenster schließen if (isOpen("Log")) { selectWindow("Log"); run("Close"); } if (isOpen("Threshold")) { selectWindow("Threshold"); run("Close"); } if (isOpen("B&C")) { selectWindow("B&C"); run("Close"); } if (isOpen("Color Balance")) { selectWindow("Color Balance"); run("Close"); } // Finales Bild auswählen if (isOpen(finalTitle)) { selectWindow(finalTitle); } print("Scalebar erfolgreich hinzugefügt."); // Log sofort wieder schließen, falls es durch den print-Befehl aufging if (isOpen("Log")) { selectWindow("Log"); run("Close"); }