The following code shows how to extract the names of images that were put in a stack to display on the image or to report in measurement results.
In this specific example, multichannel images were put into a stack and then the channels
split such that the images have channel information in front of the file name and a series
number at the end. The string parsing cuts these off.
substring(label, dash, lengthOf(label)-15);
Similarly, a function that returns the file name without the extension could be called.
More description of the command getMetadata() at https://imagej.nih.gov/ij/developer/macro/functions.html.
In this example, it would probably be useful to also add a scalebar to all images.
macro "Stamp metadata on stack" { textSize = 72; run("Colors...", "foreground=white background=black selection=yellow"); setFont("SansSerif", textSize); run("Select None"); for (s=1; s<=nSlices; s++) { setSlice(s); label = getMetadata("Label"); dash = indexOf(label, "-") + 2; label = substring(label, dash, lengthOf(label)-15); // removes channel from beginning and "series" from end // print("" + s + " \t[" + label +"]"); drawString(label, 4, textSize+2); } }