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.

G’MIC main project page : http://gmic.eu

G’MIC download : http://gmic.eu/download.shtml

G’MIC web service : https://gmicol.greyc.fr/

G’MIC language tutorial pages : http://gmic.eu/tutorial/basics.shtml

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.

Improvements:

[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: