Graphic Apps


5  /  45 Reviews
Apr 25, 2020 Last updated


Older Versions

# Change Log

What’s new in version 2.9.0?


* New features:


[gmic-qt_290] New filter Rendering / Tree renders a fractal tree, with various parameters that can be tuned to generate different kind of trees.

[gmic-qt_290] New filter Sequences / Moiré Animation produces still images that can be animated with a transparent sheet, from several frames (layers), as shown in the video

[gmic-qt_290] Filter parameter color() now accepts an argument that is a RGB or RGBA colors in HTML format (e.g. #aabbcd or #aabbccddee).

[math_core_290] New functions maxabs(), minabs(), argmaxabs() and argminabs() find the min/max (in absolute value) of a list of arguments. New commands maxabs, minabs, argmaxabs and argminabs also added to operate on image pipelines.

[math_core_290] New functions name(_#ind,_siz) and setname(_#ind,str) get/set the name of an image of the list (eq. to command name but directly inside the math parser).

[math_core_290] New function ref(expr,varname) references the specified expression expr by the variable varname. Useful to declare large vector-valued variables while avoiding memory duplication in the math parser (e.g. ref(vector1024(),A) is better than A = vector1024(), as the latter requires two allocations and a call to the vector copy constructor).

[math_core_290] New function lerp(a,b,t) computes the linear interpolation between arguments a and b (i.e. a*(1-t) + b*t).

[math_core_290] New function inrange(val,a,b,include_boundaries) tests if a value lies in a given range.

[core_290] Most substituting expressions between braces {} can now specify a delimiter option, that delimits multiple values coming from a substitution (e.g. {[1,2,3]:;} is substituted as 1;2;3 and {'foo:^} by 102^111^111). Accepted delimiters are , (default), ;, /, ^ and ’ ’ (space).

[core_290] New input expressions ('string') and ('string':delimiter) now available, to create images containing the character codes composing the string (equivalent to ({'string'}) and ({'string':delimiter}) where delimiter can be , (default), ;, / or ^). For this special expression, delimiter can also be specified as x,y,z or v to set the main image orientation.

[stdlib_290] New command parse_gui parses all #@gui filters available (e.g. all filters defined for the G’MIC-Qt plug-in) and outputs filter information in a format following a given output mode (json | list | print | update | zart).

[stdlib_290] New commands input_text (shortcut it) and output_text (shortcut ot) load/save text-data files as new images containing the ASCII characters as unsigned char-valued pixels (eq. to using expression raw:filename.txt,uchar).

[stdlib_290] New command strcapitalize capitalizes an input string.

* Modifications / Improvements:


[gmic-qt_290] G’MIC now supports UTF-8 encoded command files. All existing command files have been converted to UTF-8. In scripts, strings can also specify UTF-8 characters with the \u or \U prefixes (as in "\uA0B3" (ꂳ)). Note that UTF-8 characters are still not rendered by command text.

[gmic-qt_290] Enable link-time optimization (flag -flto) when compiling the CLI tool on Linux. This produces a binary with an improvement of 14% in size.

[cli_290] Command help has been redesigned, and always outputs help messages on stdout.

[core_290] Command discard has been optimized when called with a single scalar argument.

[core_290] Command display now outputs info on console for verbosity=0 (was =1 before).

[core_290] Loading animated .gif now always returns full frames (rather than difference frames).

[core_290] Command store accepts an optional argument is_compressed that tells if stored images must be stored in a compressed form.

[math_core_290] Function find() is now able to search inside a vector with a given step (positive or negative).

[math_core_290] Function store() can now store a sub-vector as an image-valued variable.

[stdlib_290] Commands version now always output messages on stdout.

[stdlib_290] Command compress_gmic has been recoded and is now faster to execute.

[stdlib_290] Interactive viewer for 2D images now accepts shortcut CTRL+W to close the window.

[stdlib_290] Command echo (shorcut e) can be invoked as +echo[] (shortcut +e[]) to output on stdout rather than stderr (equivalent to echo_stdout).

[stdlib_290] Command colormap has been optimized for extracting all existing colors from an input image (with argument 0).

[stdlib_290] Command display2d is now able to perform multi-image display with synchronized views, when selected 2D input images are stacked along the z-axis. Command display_parallel enables this mode by default when compatible images are displayed.

* Bug fixes:


[core_290] Value of milliseconds timer $| was resetting itself each day, on Windows. This is now fixed. Precision of the timer has been also improved when running after several days.

[core_290] Command fft: Fix calculation of FFT along ‘y’-axis when used with volumetric images.

[core_290] Fix substituting expression {ind,b} when image name is empty.

[core_290] Expressions s.a. .,.,.,.xN are now recognized.

[core_290] Fix bug in thread waiting functions (wait_threads() is now thread-safe).

[math_core_290] Check constant image index, when accessing vector-valued expressionsI/J[#ind,off] and I/J(#ind,x,y,z,c).

[gmic-qt_290] Fix critical bug in filter Montage (regression introduced in 2.8.4).

And a lot of other small bugfixes!


G'MIC (an acronym for GREYC's Magic for Image Computing) is a free, cross-platform, open-source framework for image processing.

G'MIC is also known as a powerful GIMP, Krita, and Paint.NET Plugin that allows you to add and make use of over 500 free extra filter effects. G'MIC enable you to use several user interfaces that you can use to manipulate, convert, filter, or visualize generic image datasets. If you would like to take a quick look to see what you can achieve with G'MIC, take a look at the "Image Gallery" and check the impressive amount of images.

According to G'MIC, official site user interfaces are:

1. gmic - a command-line tool that allows you to use the G'MIC image processing features from a shell.

2. libgmic - tiny, portable, thread-safe and multi-threaded, C++ image processing library to be linked to third-party applications. Its API allows programmers to add all G'MIC features in their software without many efforts.

3. G'MIC-Qt - a popular plugin that enables you to make use of G'MIC capabilities in other famous software such as GIMP, Krita, and Paint.NET. The plugin contains over 500 filters.

4. G'MIC Online - is a web service that allows you to upload an image from your computer and apply different filters - all in a web browser.

5. ZArt - a Qt-based interface for real-time processing of video streaming coming from webcams or video files. 


- according to the team: "focused on the design of possibly complex pipelines for converting, manipulating, filtering, and visualizing generic 1D/2D/3D multi-spectral image datasets."

- G'MIC contains a substantial set of pre-defined image processing algorithms and pipelines (more than 1000)

- multi-threaded native software

- cross-platform (it runs on Windows, macOS, UNIX)

- capable of processing many image types, including multi-spectral, 3d volumetric, 3d vector objects, and image sequences.

- image manipulations and interactions can be done grouped or only on certain items.

- efficient visualization modules for exploration/viewing of 2D/3D multi-spectral images, 3d vector objects or 1D graph plots

- highly customizable - users can design their image processing library


G'MIC has many use cases when it comes to image processing. The official site has an impressive amount of help (videos, wiki, image gallery, etc.) which is available under the "Resources" section. 

The fastest way to take a look over some of its capabilities (apart from visiting the "Image Gallery") would be to try the online web service. You can upload an image and play with the filters. 

Another option would be to download and install the G'MIC plugin for GIMP, Krita, or Paint.NET. This tip is available if you already use one of these image retouching and painting software and test the plugin. 

If you appreciate the incredible amount of special filter effects or you're being amazed by the framework, please consider a donation to G'MIC.

Found this software useful? Please consider a donation to the author.