Macro recorder not recording IJ2 plugin parameters

Hi all together,

I encountered a problem when running and recording an IJ2 command.
So far (at least last time I tested something like that some time ago), recording of IJ2 plugins using the @Parameter recorded all parameters from the auto generated dialog.
Today, I encountered that this did not work anymore. The recorder records still the run("......."); part but without the user defined parameters.
Is there anything I am missing or was there any change in how to code the plugin to make it macro recordable?
Potentially, some interested in the issue could test this on any IJ2 plugin to just confirm if it is a global problem or if I have a mistake in my workflow.
Thanks in advance

This is a known issue:

It was fixed here:

… but the fixed imagej-legacy component wasn’t uploaded to the update site yet.

@ctrueden can we release a new imagej-legacy version and upload it?


Thanks @imagejan and @ctrueden,

would be great if the uploaded imagej-legacy version solves it. as soon as its out, I’ll test it and report the outcome.

1 Like

I have released image-legacy-0.33.1.jar. Please download it, replace the previous imagej-legacy from your installation, and test as thoroughly as you have time. If no one finds any regressions, I will upload it ASAP.


For the 4 IJ2 plugins I had at hand at the moment it works again and records all parameters as expected.
Thanks a lot for the quick solution

@biovoxxel Did you notice any issues (either performance or correctness) with legacy syncing, etc., when mixing and matching ImageJ1 and ImageJ2 code and/or data structures? E.g.: what if there are ROIs and/or an overlay? What if you do a batch run over 100 images… do things slow down?

Will try that and report as soon as possible


I ran a few tests and could not find notable difference in performance.
Test 1 was running a macro including calls of standard ImageJ functions (median filter, analyze particles, …) as well as one of my IJ2-type plugins for cluster analysis. The procedure included cycling trough ROIs in the Roi Manager, saving images as well as results tables. It was run 3 times on a set of 13 images with a varying amount of cells per image. The graph below shos performance time in milliseconds for each image in blue for the old imagej-legacy-0.33.0 version and in orange for the new imagej-legacy-0.33.1 version


Test 2 was running the same macro on 104 images (8x the initial 13 images) to see if an increaseing amount of images leads to a slowing-down effect.


At the end of the sequence there seems to be a marginal difference but I do not think that there is a severe difference in performance between the 2 imageJ-legacy-x.x.x.jar versions.

Hope this helps


@biovoxxel Thank you so much for testing! I have uploaded the new imagej-legacy-0.33.1.jar to the update site.

1 Like

Resurrecting this thread as I’m having the same problem. I’ve made a plugin implementing Command and annotated with @Parameter. The plugin shows up in the Fiji GUI with all fields, and works as expected. However, the parameters are not recorded, only the run("…") command as described in the OP. I have the latest version of imagej-legacy (0.35 as of this writing).

Figured out what the problem was: My plugin included calls to…), which would finish the recording before the MacroPostProcessor had a chance to record all the parameters.

1 Like

Glad you figured it out on your own (and sorry for the delayed reply; next time just open a new topic and only link to the old one, then your topic will be shown in the Unanswered listing…).

Your diagnosis is correct, the problem is caused by, see also this old thread: