CONTEST: New ImageJ logo!

1 Like


[same logo, two different backgrounds]



science, image quantification, data analysis … that hopfullly leads to new knowledge
digital, binary, 0, 1, digital images,
code, jar, java, scripting, macros
ij, fiji, ij2
RECURSION - let’s get crazy with that!
reproducible, interoperable, extensible, less crazy
community, open source, sharing

monocular microscopes, tradition, origins, roots

also ij reminds me of a IDE I like a lot :slight_smile:


1 Like

Both would be nice, but the icon is the main required thing. If you take a look at, you’ll see that nearly all logos come in a “square icon” form, and many also have a “full logo including text” or similar wide form. E.g. Bio-Formats has the three stacked planes icon, and then the full logo including the “BIO-FORMATS” text.

Our goal here is to replace the ImageJ icon with something better. IMHO, the best icons are square or near-square, and are simple enough to scale well to various resolutions from 16x16 to 128x128 and beyond. SVG is ideal these days, but bitmap is fine too.

1 Like

I have added a few variants in my original post, with better overlay and tweaked colors (including a “Fiji blue” one!). Put your like up there if you dig it.



Could you try with a thin black line to mark the contour?
Or could I play with it if you are ok?

Hi @tinevez,

Thanks for the suggestion! I tweaked the size of the dots on i and j (thanks to @tomancak suggestion on Twitter) and added a white outline for more background versatility. Here are 4 versions with or without an added black contour, and using a Fiji-inspired color scheme or a more contrasted one. Not sure how like/votes will be counted across posts and versions but let me know if you like it!

Here how 2b looks in the OSX dock:


Here’s my idea for a new logo. Hopefully you get a sense of ‘community’ from this design!

ImageJ Logo Designs - for ICO - BW-01 ImageJ Logo Designs - for ICO-01

The work was done with Adobe Illustrator so it’s easy to produce vector or bitmap formats as required. Ditto any tweaks or changes.

The colours are not anything in particular—just a couple of tones which I liked and which also maintained good contrast in colour vision deficiency checks.

Below are some variations, mainly to work better at smaller sizes, e.g. as application icons:

64 x 64 pixels:

With drop-shadow With outline

Numix Round style Apple style

16 x 16 pixels:

With drop-shadow With outline Numix Round style Apple style

And as a quick demo in a probable environment the round icon doesn’t look out of place among the others:

Round logo icon demo



This is fun. Here is a more compact version:

I know ImageJ is not just for microscopy, but I value the recognition factor. Here is the SVG including a few different versions if someone wants to play with it. I use Inkscape, not sure it will work elsewhere.

It would be interesting to see something not based on letters.


I like the simple, two colored style of logos. We just need to take care that we are not getting too close to Juventus Turin :wink:


Here are two ideas:

  1. a variation of single ij
    considering the two squares representing binary numbers we have: 01 or 10, so depending which pixel one you count on or off you got 1 or 2 … a bit like ij-legacy and the new stuff :slight_smile:

  2. playing with recursion and symmetry:

    The “i” got pressed a bit into that pattern, so now you need maybe a bit too imagination to quickly recognize it. Not sure how good this works for small sizes, through, there I might need to tweak the proportions.

As you can see, I am not good with colors, so feel free to try to add some.

Old school retro look :slight_smile: I took from the idea of @etarena and @christlet to have an intersection looking like a pixel, which is a nice touch


I’d opt for the following properties of a new icon/logo:

  • flat design (i.e. no gradients, shadows, etc.)
  • scalability (i.e. vector graphics ideally)
  • recognizability (i.e. it should somehow remind of a microscope, as we carry along the history of ImageJ 1.x)
  • scriptability (i.e. it should be possible to generate the logo with a simple script within ImageJ, recursively :slight_smile:)

I really like the suggestion by @frauzufall above, but would prefer a vertical microscope that resembles the original ImageJ icon a bit better.

Here’s a simple suggestion:


In a monochrome setting, this could be rendered e.g. like this:

image image

Colors are of course open for discussion. Also the icon could be centered a bit better than in these quick trials…


Hey all, just wanted to share some of my logo drafting. Easily recognisable icon and the same icon with ImageJ text, for different purposes. Available in all file formats needed.

The icon has a blue nucleus and represents an objective. Hope you like it! :slight_smile:



I played around with the new ImgLib2 ROIs (thanks @awalter17!) and came up with the following script to generate my suggested logo above (note that this currently requires imglib2-roi.jar built from the shape-roi branch; and due to API changes, imagej-ops has to be moved out of the way for it to work in Fiji):

/* Create logo mask */

import net.imglib2.roi.Masks
import net.imglib2.roi.geom.GeomMasks

I = GeomMasks.closedBox([30.5, 10.5] as double[], [40.5, 60.5] as double[])

Jbar      = GeomMasks.closedBox    ([45.5, 30.5] as double[], [70.5, 40.5] as double[])
Jstem     = GeomMasks.closedBox    ([60.5, 30.5] as double[], [70.5, 70.5] as double[])
Jouter    = GeomMasks.OpenSphere   ([50.5, 70.5] as double[], 20.0)
Jinner    = GeomMasks.closedSphere ([50.5, 70.5] as double[], 10.0)
Jclipping = GeomMasks.openBox      ([ 0.5, 70.5] as double[], [100.5, 100.5] as double[])

J = Jouter.minus(Jinner).and(Jclipping).or(Jbar).or(Jstem)

slide  = GeomMasks.closedBox([25.5, 66.5] as double[], [45.5, 68.5] as double[])

These shapes can then be combined with each other (and an optional frame):

/* Create frame */

frame1 = GeomMasks.closedBox([ 0.5,  0.5] as double[], [100.5, 100.5] as double[])
frame2 = GeomMasks.closedBox([ 1.5,  1.5] as double[], [99.5, 99.5] as double[])
frame  = frame1.minus(frame2)

/* Combine mask */

mask = Masks.toRealRandomAccessibleRealInterval(I.or(J).or(slide).or(frame))

… and then rendered in BigDataViewer, or using ImgLib Views

/* Show combined mask in BigDataViewer */

import bdv.util.Bdv
import bdv.util.BdvFunctions
import net.imglib2.FinalInterval
				new FinalInterval(
						[mask.realMin( 0 ), mask.realMin( 1 ) ] as long[],
						[mask.realMax( 0 ), mask.realMax( 1 ) ] as long[] ),
				"2D Mask",
				Bdv.options() )

/* Use Imglib2 Views to raster the mask */

#@OUTPUT img
import net.imglib2.view.Views
import net.imglib2.FinalInterval

img = Views.interval(Views.raster(mask), new FinalInterval(
						[mask.realMin( 0 ), mask.realMin( 1 ) ] as long[],
						[mask.realMax( 0 ), mask.realMax( 1 ) ] as long[] )

… resulting in a binary image, which can then be colorized at will:

image - image - image - image

(Note that I had to add 0.5 to all integer position to work around rastering effects, and then crop the first pixel row and column in order to get the above image. I appreciate any suggestions and improvements on this.)