Release of G'MIC 2.0.3


(David Tschumperlé) #1

Hello folks !

This is the changelog for the release of a new minor version (numbered 2.0.3) of the G’MIC image processing framework. This new stable version stays (mostly) compatible with the previous version 2.0.2.

What is G’MIC?

G’MIC (GREYC’s Magic for Image Computing) is a full-featured open-source framework for image processing. It provides several different user interfaces to convert/manipulate/filter/visualize generic image datasets, ranging from 1d scalar signals to 3d+t sequences of multi-spectral volumetric images, thus including 2d color images.

The following is the full Changelog of the version 2.0.3, as compared to the previous stable version 2.0.2.
Enjoy !

New features:

  • [gmic-qt] A new G’MIC plug-in for Krita has been implemented, based on our latest Qt-based generic plug-in code, thanks to the tremendous work of Boudewijn Rempt and Sébastien Fourey. This means we should be able to update the plug-in for Krita more regularly, just like the plug-in for GIMP. The G’MIC-Qt plug-in for Krita is already provided in the latest stable release of Krita (3.2.0).

  • [gmic-qt] New filter Deformations / Square to circle implements a square to circle mapping (forward and backward), as described in this page.


  • [gmic-qt] New filter Degradations / JPEG artefacts simulate the effect of JPEG compression with low quality on an image, based on the quantization of 8x8 DCT blocs.

  • [stdlib] New command -tensors3d which generates a 3d representation of a 3x3 tensor field.

  • [stdlib] New command -resize_mn which implements the Mitchell-Netravali filter for image upscaling (one family of bicubic kernels).

  • [stdlib] Filter Colorize lineart [smart-coloring] gets a new mode to automatically ‘clean’ a color layer done (quickly) by the user.

  • [core] New substituting expression $[] (in a command) is replaced by the list of image indices composing the image selection used when invoking that command.


  • [core] Math parser defines a bunch of new functions im(), iM(), ia(), iv(), is(), ip(), ic(), xm(), xM(), ym(), yM(), zm(), zM(), cm() and cM() which compute the minimum, maximum, average, variance, sum, product, median and min/max coordinates in a possibly dynamic-sized image (same as variables im, iM, ia, iv, is, ip, ic, xm, xM, ym, yM, zm, zM, cm, cM but used when the image has a dynamic size, i.e. when function resize() has been used in the expression).

  • [core] New math parser functions floor() and ceil() in math parser, that can replace the use or round() with parameter rounding_mode set to -1 or 1.

  • [core] Overloads of math parser functions print(#ind) and display(#ind) now allows to print info or display an image from a math expression. New function prints() allows to print a char-valued vector-expression as a string.

  • [core] Math parser function end() has now a silent return, so that it can be located at the very end of the math expression without interfering with its values.

  • [core] Image viewer now limits the display of pixel values with a label containing at max 16 channels (8 first, and 8 last), in case the image has more than 16 channels. It also displays the length of the selected vector (diagonal of the selection box).

  • [stdlib] Command -close_binary gets a hatch detection module (hence also filter B&W / Smart coloring), so that less small color regions are produced when using the filter to auto-color a lineart.

  • [gmic_qt] In case of filter using randomness, filter rendering is now using the same random seed than the last preview, to get a closer match between preview and rendering results.

Bug fixes:

  • [core] Fix issue with variables starting with letter Z that couldn’t be assigned.

  • [gmic-qt] Fix order of layer when Input mode is set to Active and above.

  • [gmic-qt] Fix access to folder names containing accentuated characters, when required (e.g. in filter Film emulation / User-defined). Thanks to @sguyader for the bug report !

  • [gmic-qt] Fix on-the-fly changes of the color() parameter in a filter, when passing from RGBA to RGB colors and vice-versa.

  • [gmic-qt] Better management of filters that output layers located at different positions.

  • And as always, many minor bug fixes ! :stuck_out_tongue:

(David Tschumperlé) #2

(David Tschumperlé) #3
  • 2017/08/21 : Release of 2.0.3 final! :stuck_out_tongue:

(Lyle Kroll) #4

Got the head’s up from GIMPChat. Thanks for you and your team’s continued support to make G’MIC the best enhancement/art tool out there, David. :slight_smile:

(Morgan Hardwood) #5

Great to hear of a new release!

Is there a known minimum changeset/commit hash GIMP version required for the GIMP plugin to compile? I need this info when opening a request for inclusion of G’MIC 2.* in Gentoo/Sabayon.

(David Tschumperlé) #6

There must be one, but honestly I’ve no idea what it is !
I’m personally up-to-date with the PPA gimp-edge, and I just try to fix compilation issues when they are some.

(Silvio) #7

Hello David !

Thank you very much for this QT new version.
I have tested it both on Windows 7 and Windows 10 (64 bit) with Gimp 2.8.22 and it works great !!! :slight_smile:

Since I am a Krita user I have tested their G’mic version with today’s new version (2.3.1).
With Krita the G’mic version (2.0.3) is extremely buggy on Windows 7 (64 bit) to the point most filters do no work properly.
Luckilly, on Windows 10, G’mic (2.0.3) work much better even though, IMHO, it is not on par with Gimp 2.8.22 where the same G’mic filters I have tested work always fine.

To help Krita developers, I have even submitted a crash report : :slight_smile:

(David Tschumperlé) #8

Dear @Silvio_Grosso, I’m afraid I can’t do much about this issue for now.
There may be a few issues remaining in the code specifically done for Krita, managed by @Boudewijn_Rempt.
So, filling a bug report in the Krita bugtracker was exactly what needed to be done :slight_smile:

(David Tschumperlé) #9