Need help or advice ? Come to the Icy club ! - Every Thursday morning from 9h30 to 13h00 - Calmette Building - 1st Floor room 15 - Pasteur

User reviews

5 star
4 star
3 star
2 star
1 star
average rating: 4.6

Please log-in to post a review
18 Jun 2015 20:00
A good complement to protocol plugin that allowed scientist to implement new function. What could help is to have the list of all function and argument we can use.
Many thanks
Alexandre Dufour
18 Dec 2013 13:49
Amazing tool, with auto-completion, multi-language support, and access to the entire Icy codebase including documentation. BRAVO.
Thomas Boudier
13 Aug 2013 14:28
Looks fine, but java sun required ;-) ; does not work with openjdk.
OK works with 1.7 openjdk, thanks !
28 Feb 2013 21:35
great mix of flexibility and accessibility! I use it a lot.
Fabrice de Chaumont
26 Feb 2013 18:32
The auto completion, and the real-time parse of the documentation deserve 5 stars !

Script Editor

by Thomas Provoost

Create powerful scripts to implement what's missing with plugins. Syntax Color and Autocomplete features implemented (still need testing).

Should be used with Icy-Master on github for better autocompletion.

Publication Id
See technical details
View complete changelog




ROIs and Loops

Batch processing



  1. On my Mac OS X, Ctrl + Space opens Spotlight and does not auto-complete.
    Currently, you have to change the shortcut of Spotlight by going to "System Preferences > Spotlight" and change the shortcut (lower part of the window). 
    Why did we choose this shortcut? In fact, Ctrl + Space is a standard for developers in their IDEs (Eclipse, Netbeans, Qt Creator, etc), but Apple decided to use F5 in their own IDE and Ctrl + Space for Spotlight.
    In the future, there will be an option in the Script Editor to change the auto-complete shortcut.

  2. Will my ImageJ macro work in ScriptEditor?
    Currently, ImageJ macros are fully usable, please look at the script "callIJMacro.js" to do it.

  3. Will my MicroManager scripts work in ScriptEditor?
    MicroManager's scripts are compiled with Beanshell and not Rhino. You will have to adapt the script to make it work in Icy.

  4. In JavaScript, I got the following error: "ambiguous", what did I do wrong?
    Because there is a bridge between JavaScript and Java, some objects are not interpreted correctly, and JavaScript does not know which method to call between two (or more). When this happens, you will have to tell JavaScript exactly which one you want to use.
    For instance: Thresholder.threshold(seq, 1, [127], false) => doesn't work

    But some functions are proposed instead:
    class icy.sequence.Sequence threshold(icy.sequence.Sequence,int,double[],boolean)
    class icy.sequence.Sequence threshold(icy.sequence.Sequence,int,double[][],boolean)

    If you want to use the first one, write: 
    Thresholder["threshold(icy.sequence.Sequence,int,double[],boolean)"](seq, 1, [127], false)

    As you see, you just copy and paste the needed function (without the "class" and the return type). 
    This is an explicit call. It works the same way for non static access.

  5. How can I create an array in JavaScript?
    Arrays are created using the following syntax: 
    var myArray = [12, 0.1, 96]

    An array can contain anything: numbers, objects, chains of characters. However, for Java inter-connection, please avoid mixing the types in an array.

  6. Some method in the autocomplete contains an "s" on their icon, what is it?
    These methods are "static" method, meaning they are meant to be called on the class directly, and not on an instance of the class. If you are not familiar with the Oriented Object Programming, simply remember this example: 

    cos(arg) in class Math is static

    When you want to use it, you don't do:
    math = new Math()

    You do:
    It is the same with SequenceUtil and IcyBufferedImageUtil: SequenceUtil.getCopy(seq).