http://imagej.273.s1.nabble.com/ImageJ-does-not-add-new-plugins-to-the-menu-tp5018403p5018450.html
Yes this is what I want but as you already realized, I am using vanilla ImageJ instead of Fiji.
The main reason for doing that is load time; I am using ImageJ as my primary tool for viewing and exporting micro-CT data and vanilla ImageJ loads in just a fraction of a second while Fiji takes a couple of minutes to launch. I have written some context sensitive right-click scripts in Windows that loads my data as a virtual stack in ImageJ 1.5x; this way I can open and browse a 4000^3 voxel dataset easily in a matter of seconds to locate the data of interest for further processing. Loading the same dataset in the dedicated software supplied with the micro-CT takes half an hour since it is all loaded into memory. Since CT time is limited due to high demand, my data throughput in a day with an instrument booking would be many hundreds of gigabytes, so every extra second or minute spent in the workflow matters.
Another drawback with Fiji which makes it unusable in my workflow is that when doing inevitably lengthy operations like exporting my very big stacks to AVI (for easy sharing with customers) which I have also automated by right-click scripts; the Fiji UI does not appear until _after_ the script has finished. The export might take half an hour or so, which really demands a progress bar or some other visual clue that the process is running.
Sent: 05. april 2017 20:42
If you place a (e.g. Groovy) script at scripts/Foo/Bar/My_Script.groovy then it will appear in menus at Foo > Bar > My Script.
Yes, if you place a script at e.g. scripts/Foo/Bar/My_Script.groovy inside a JAR file, it will appear in the menus at Foo > Bar > My Script.
> Using Javascript as an alternative to a plug-in is an interesting
> approach; I wonder whether or not it is possible to control what menu
> the script appears in, in the same way as plugins.config does ? Can
> we have a javascript inside a jar?
>
> Stein
>
> -----Original Message-----
> From: ImageJ Interest Group [mailto:
[hidden email]] On Behalf Of
> Wayne Rasband
> Sent: 01. april 2017 23:58
> To:
[hidden email]
> Subject: Re: ImageJ does not add new plugins to the menu
>
> > On May 29, 2017, Curtis Rueden (
[hidden email]) wrote:
> >
> > Hi Wayne & everyone,
> >
> > Wayne wrote:
> >> compile it using Plugins>Compile and Run
> >
> > Please note that "Refresh Menus" and "Compile and Run" are not
> > currently supported in ImageJ2 [1, 2, 3].
> >
> >> This example is more complicated than it needs to be.
>
> The example can be further simplified, and it can avoid the
> non-working "Compile and Run” command in Fiji, by converting it into
> JavaScript. Save the following two line JavaScript version in the
> plugins folder, or sub-folder, as “Cephalometric_Analysis.js" and it
> will be added to the Plugins menu, or sub-menu, after you use the
> Help>Refresh Menus command or restart ImageJ.
>
> imp = IJ.openImage(“”);
> imp.show();
>
> JavaScript is now a compiled language so it runs up to 30 times faster
> than the ImageJ macro language. Use the Sphere examples in the
> Help>Examples menu to compare the speed of the macro language,
> Help>JavaScript,
> Beanshell, Python and Java. You will need to change the ‘size’
> variable from 512 (0.25 megapixels) to 4096 (16 megapixels) to get a
> fair comparison. JavaScript is able to calculate a 16 megapixel image
> in a 0.3 seconds.
>
> Note that this example will not work in Fiji as a menu command unless
> you add a statement that imports the IJ.class. It will work as is in
> the Script Editor if you enable the Edit>Auto-import (deprecated) option.
>
> -wayne
>
> > I agree that the example is too complicated. However, I think there
> > is a middle ground here -- we want to provide a hackable template
> > from which real-world plugins can be easily created. E.g.: it should
> > show how to use GenericDialog, which most plugins will need.
> >
> > As always, pull requests improving the example are most welcome.
> >
> > Paul wrote:
> >> I was hoping that I could add it directly to the plugins menu (in
> >> the plugins forder).
> >
> > Certainly you should be able to do that, by building the JAR file
> > and dropping it into your ImageJ plugins folder. The plugins.config
> > file in src/main/resources defines which plugins appear where in the menus.
> >
> > The example-legacy-plugin uses a hack in the main method [4] to set
> > the plugins directory to match the IDE's runtime classpath. By doing
> > this, the plugin will appear in the Plugins menu without needing to
> refresh the menus.
> >
> > Regards,
> > Curtis
> >
> > [1]
https://github.com/imagej/imagej-legacy/issues/98> > [2]
https://github.com/imagej/ij1-patcher/issues/31> > [3]
https://github.com/imagej/imagej-ui-swing/issues/48> > [4]
> >
https://github.com/imagej/example-legacy-plugin/blob/59bba7bf39f77e6> > 3c
> > 4e4498cb0643200b4c5b673/src/main/java/com/mycompany/imagej/Process_P
> > ix
> > els.java#L172-L176
> >
> > --
> > Curtis Rueden
> > LOCI software architect -
https://loci.wisc.edu/software> > ImageJ2 lead, Fiji maintainer -
https://imagej.net/User:Rueden Did
> > you know ImageJ has a forum?
http://forum.imagej.net/> >
> >
> > On Wed, Mar 29, 2017 at 10:39 AM, Wayne Rasband <[hidden email]> wrote:
> >
> >>> On Mar 28, 2017, at 9:56 AM, Paul Cholerzynski <[hidden email]>
> >> wrote:
> >>>
> >>> I used it and it worked fine, but as a separate project using
> >>> ImageJ. I
> >> was
> >>> hoping that I could add it directly to the plugins menu (in the
> >>> plugins forder). Another way around is to load my images and open
> >>> them in ImageWindow, but I doun't know yet how to do that.
> >>
> >> This example is more complicated than it needs to be. Save the
> >> following simplified version in the plugins folder, or sub-folder,
> >> as “Cephalometric_Analysis.java", compile it using Plugins>Compile
> >> and Run, and it will be added to the Plugins menu, or sub-menu,
> >> when you use the
> >> Help>Refresh Menus command or restart ImageJ.
> >>
> >> -wayne
> >>
> >> import ij.*;
> >> import ij.plugin.PlugIn;
> >>
> >> public class Cephalometric_Analysis implements PlugIn {
> >>
> >> public void run(String args){
> >> ImagePlus imp = IJ.open(imageFilePath);
> >> imp.show;
> >> }
> >>
> >> }
> >>
> >>
> >>
> >>> Right now it looks like this:
> >>>
> >>> import ij.IJ;
> >>> import ij.ImagePlus;
> >>> import ij.io.Opener;
> >>> import ij.plugin.PlugIn;
> >>> import ij.process.ImageProcessor;
> >>> import ij.gui.ImageWindow;
> >>>
> >>> public class Cephalometric_analysis implements PlugIn{
> >>> @Override
> >>> public void run(String args){
> >>> IJ.showMessage("This is a test");
> >>> Opener opener = new Opener();
> >>> String imageFilePath =
> >>> "C:/Users/Admin/Documents/Notatki/Meh/Obrazy/";
> >>> ImagePlus imp = opener.openImage(imageFilePath);
> >>> ImageProcessor ip = imp.getProcessor();
> >>> ImageWindow(ImagePlus imp);
> >>> ImageWindow iw = new ImageWindow(imp);
> >>> iw.setImage(imp);
> >>> }
> >>> public static void main(final String... args){
> >>>
> >>> new ij.ImageJ();
> >>> new Cephalometric_analysis().run("");
> >>> }
> >>> }
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context:
http://imagej.1557.x6.nabble.
> >> com/ImageJ-does-not-add-new-plugins-to-the-menu-tp5018403p5018406.h
> >> tm
> >> l
> >>> Sent from the ImageJ mailing list archive at Nabble.com.
> >>>
> >>> --
> >>> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html> >>
> >> --
> >> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html> >>
> > « [hide part of quote]
> >
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>