Release of G'MIC 1.7.9

Hello there,

I’m happy to announce the release of a new version (numbered 1.7.9) of the G’MIC image processing framework. As always, I encourage upgrading to this new version as soon as possible :innocent:.
This version should be backward-compatible with the previous one (1.7.8), meaning that all added filters that do not use new core features of version 1.7.9 should work also with version 1.7.8.

Important note: This new version 1.7.9 is the last of the 1.7.x serie, so I expect it to be a long-term release. We have planed a lot of new cool features for next version 1.8.0, but this will require a lot of work before we can release (this will be a major release though).

What is G’MIC?

G’MIC 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 1.7.9, as compared to the previous stable version 1.7.8.
Enjoy !

New features:

  • [core] New (native) command -screen grabs a screenshot (optionally with specified coordinates), and inserts it at the end of the image list (looks like it does not work on Mac OSX).

  • [gimp] New button Change layout allows to move the preview on the right, in the dialog window.

  • [gimp] New filter Artistic / Highlight bloom enhances photographies by adding details and contrast. It is inspired by this tutorial) (but does not follow it strictly).

  • [gimp] New filter Colors / Retro fade renders a grainy image with a only few colors from an original image.

  • [gimp] New filter Artistic / Posterize is another posterization filter with nice rendering options.

  • [gimp] New filter Patterns / Camouflage, renders (as its name suggests) a Camouflage pattern:

  • [gimp] New filter Black & White / Colorize [auto-fill lineart] tries to auto-fill a lineart wiith random colors.

  • [gimp] New filter Repair / Smooth [antialias] slightly blurs the contours of an image to add anti-alias.

  • [gimp] Main dialog parameters are now persistent when the plug-in or GIMP is closed and restarted.

Improvements / Changes:

  • [core] A few improvements in the embedded math parser:

    • New function xor(a,b) to compute bitwise exclusive or.
    • New function pseudoinv(A,_nb_colsA) computes the Moore-Penrose pseudo-invert of specified matrix A.
    • New function svd(A,_nb_colsA) computes the SVD of specified matrix A.
    • New function breakpoint() introduces a computation breakpoint in complex expressions with loops.
    • Function mp_print() and mp_display() only print a limited number of vector components on the console, if the vector to print/display is large.
    • Expression compiler has now a cache memory for constants so that specifying the same constant value twice (or more) in an expression does not duplicate it in memory.
    • Multiplication operator can be now used to write matrix*vector multiplication, when size(matrix)==size(vector)^2.
    • Initialization of vector variables has been optimized: memory copy is avoided when possible.
    • Vector with const size (given by an expression Expr can be now defined as vectorExpr(value0,...), e.g. const N = w#0*h#0; X = vectorN(0).
    • Function normP() can be invoked with P being a constant. If P is omitted the L2 norm is returned.
    • Optimization of the math_lib functions thanks to newly added function draw_scanline().
    • Adding a space character before a ( (for a function call) or a [ (value accessor) is now possible.
    • Bug fix in the function sum() which was counting twice the first argument.
  • [stdlib] Add 10 new HaldCLUTs that define new color mapping. Those CLUTs are provided by Marc Roovers on his web page, as a part of the PictureFX pack. Thanks Marc!

  • [stdlib] Command -compress_clut has been slightly improved, and should compress when desired compression compression quality is not fulfilled.

  • [stdlib] Command -quiver is now implemented as a custom command (instead of a native one) and thus, can be updated via the regular command update mechanism.

  • [stdlib] Command -scale_dcci2x has been recoded from scratch and is faster when multiple cores are available.

  • [stdlib] Some existing commands have been renamed:

    • Command -input_sample (eq. to -is), renamed to -sample (eq. to -sp).
    • Command -input_clut, renamed to -clut.
    • Command -input_string, renamed to -string.
  • [stdlib] Command -negative recoded from scratch and renamed as -negate. An optional base_value argument can be now specified for this command.

  • [stdlib] Commands -rgb2xyz, -rgb2lab, -xyz2rgb, -lab2rgb now accept arguments to choose the illuminant used for the conversion (either D50 or D65).

Bug fixes:

  • [core] Fix orientation convention (correlation-like) for command -erode with an arbitrary (non-symmetrical) mask.

  • [core] Standardize centering issue when dealing with mask of even sizes, in commands -dilate, -erode, -convolve, -correlate and -median.

  • [core] Fix small bug to re-enable parallelism in commands -erode, -dilate, -convolve and -correlate, when a large custom mask is used.

  • [core] Fix small bug and improve precision of command -resize when used with linear, cubic and lanczos interpolations.

  • And as always, many fixes of minor bugs :slight_smile:


Hi David,
-screen does not work under Mac. It delivers only a black image:
gmic -screen
[gmic]-0./ Start G’MIC interpreter.
[gmic]-0./ Take screenshot.
[gmic]-1./ Display image [0] = ‘[Screenshot]’.
[0] = ‘[Screenshot]’:
size = (1680,1028,1,3) [19 Mio of floats].
data = (0,0,0,0,0,0,0,0,0,0,0,0,(…),0,0,0,0,0,0,0,0,0,0,0,0).
min = 0, max = 0, mean = 0, std = 0, coords_min = (0,0,0,0), coords_max = (0,0,0,0).

Altough my sceensize is 2560 x 1600. In fact {,u}->1680 and {,v}->1028 !

In “Vollbildmodus”, root ?, I get an error message:
gmic -screen
[gmic]-0./ Start G’MIC interpreter.
[gmic]-0./ Take screenshot.X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 9
Current serial number in output stream: 9


Good to know Karsten. Thanks for the info.

  • 11/18/2016 : Final release !

Thanks for this update, David. Sharpen texture is indeed fixed with this release as you said it woud be. :slight_smile:

Mission accomplished!


1 Like

Thanks Thorsten !

Appears to be another broken preset. Hardsketch with fast approxmiation enabled gives solid black or solid white result depending on option chosen of course. I use this to render grid graphic type renders on occasion and was going to do one when I found this out. Just a head’s up, David. :slight_smile:

Thanks Lyle, I’ll fix that ASAP.

Noticed that it no longer gives a solid black color but the result is no longer the same like it use to be. Below’s an example of how I used the fast setting. Maybe too late to get that type of result back. Hope it’s not. :slight_smile:

flower | Using the old b/w hardsketch. :) | lylejk | Flickr


Just as a head’s up; figured out how to re-adjust the settings to get pretty close the squiggly result that I want. :slight_smile:

Pretty impressed with the auto-colorize lineart feature. :slight_smile:

G'MIC's new auto-fill feature. • GIMP Chat

@David_Tschumperle, Thank you for changing the behavior of the curves in Curves [interactive].

Did you change them after this discussion?:

edit: I’m not sure it changed :confused: Maybe I wish it to be changed. :slight_smile:

No, I don’t think I’ve changed anything lately about how the curves are handled in G’MIC.

I am getting this error with -jeje_deconvolve:

The same thing happens when I select Gold-Meinel instead of Richardson-Lucy.

Hello afre,
What version of G’MIC did you run ?
Have you tried refreshing your filter with the Update button ?
We have started working on G’MIC 1.8.0, so I’m not sure how easy this will be to fix this issue for latest stable version 1.7.9.
If you have this possibility, could you try installing the latest development snapshot of the plug-in (version 1.8.0.pre), available here : Index of /files/prerelease


Yes, I was using 1.7.9. I got the same error with 1.8.0pre#010317 (win64).

Ha, I’ve just realized you were talking about the Deconvolve filter that is in Testing/Jéjé !
I thought the errors were with the Details / Sharpen [gold-meinel] and Details / Sharpen [richardson-lucy] filters, which are working well for me. I get the same ‘error’ too, but I believe this is because this filter requires two layers, with the top layer being your custom estimated convolution kernel.
If you assume you don’t know your convolution kernel, then the filters to use are those in Details/ instead.

That occurred to me too but I didn’t pursue the thought before replying.

It would be great if there is a description on what is required for the
script to work; e.g., the sorts of kernels that are acceptable. In fact, I
could not tell what some of the other scripts need or do because of their
limited descriptions and documentation. I am new to G’MIC so there is much
to learn :).

Anyway, thanks for pointing out those sharpening filters. I will check them

You are right about the missing documentation in many places.
Anyway, filters in Testing/ should always be considered with care, as the name of the folder suggests it !
Don’t expect to read a lot of doc for those particular filters :stuck_out_tongue: