Release of G'MIC 3.2

Argh, regression found in 3.1.6_pre posted two days ago.
Fixed, building new packages for 3.1.6_pre!

  • 2022/08/31: Version 3.1.6 released. Binary packages on their way.
2 Likes

I can’t install the usual way 3.1.6 for 2.99.12 ? I have this version https://github.com/GreycLab/gmic-community/releases/download/GMIC-3.1.6/gmic_3.1.6_gimp-2.99_Win64.7z

Bonjour,

3.1.6 works on the GIMP-2.99.10 and GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP :

DOES NOT WORK on the Gimp-2.99.12 versions (Gimp.org and Gimpeval) following the API changes.

3.1.6 works on the GIMP-2.99.10 and GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP :

Still is’t not there. How do you install it? I can’t install it the usual way.

Also, I forgot to say that filter updates are now disabled for G’MIC <=3.1.5.
Please update to 3.1.6 if you want to get the next filter updates.

@hover
Bonjour,

1 - Download and extract GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP
https://www.aljacom.com/~gimp/GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP.7z

2 - Download and extract gmic_3.1.6_gimp-2.99_Win64.7z
https://github.com/GreycLab/gmic-community/releases/download/GMIC-3.1.6/gmic_3.1.6_gimp-2.99_Win64.7z

3 - Copy or cut all the contents of the \gmic_3.1.6_gimp-2.99_Win64\gimp-2.99-64bit\gmic_gimp_qt

4 - Paste in directory \GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP\Preferences\plug-ins\gmic_gimp_qt
by deleting the existing content

5 - Start gimp-2.99.13 by clicking on the executable \GimpEval-2.99.13-64bits-Win_GMIC-QT-GIMP\GIMP.exe

Now it works! Thank you samj!
I’ve set to different folder and used Prefrences path but it didn’t work before.

Could you make next GMIC version 3.1.7 to work on standard 2.99.12 ?

@hover

It seems that the new GIMP API offers new and interesting possibilities.
Maybe GMIC-QT will be adapted to the new API (this is of course what I want).
I cannot answer for future versions, it depends on the programmers of GIMP and GMIC-QT.

When I downloaded the lasted version, David, it still says 3.1.6-pree (zip version). Still probably works fine. Haven’t tested fully, though. :slight_smile:

Well no, that’s not cool. I don’t know what happened.
I’ve updated the files on the website, could you please try downloading it again and check if you get the “final” 3.1.6 version ?
Thanks!

It likely was my fault, David. I think I pressed the pre button instead of the stable one. The stable is 3.1.6. Again, my apologies. :slight_smile:

Is anyone actually using ~var? I thought it would invert bits, but it doesn’t, and I think this should be able to be overridden considering no one is using it. For now, I’ll just be using flip() as a macro to do just that. Also, gcd() could be updated to support more than 2 values.

David has a good reason for things but he is also a good listener and keeps track of what we say. I know you (and I) are enthusiastic about G’MIC but…

Just a reminder: this thread is a changelog. If you have questions or comments, this may not be the best thread to express them, unless they are directly related to the changes.

It does. It converts its argument from a double to a uint32 then it inverts the bits.
Look:

$ gmic e "{A=2^32-1;B=~0;[A,B]}"
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ 4294967295,4294967295
[gmic]-0./ End G'MIC interpreter.

BTW, it seems like what your are looking for with your flip() macro is something else than uint32.
Just mask your result with the desired number of bits for that:
E.g, for numbers using 4 bits:

$ gmic e "{~5&(2^4-1)}"
[gmic]-0./ Start G'MIC interpreter.
[gmic]-0./ 10
[gmic]-0./ End G'MIC interpreter.

But as you see, ~X&(2^N-1) is also equivalent to 2^N-1-X

I’ve started the work on the next version, which will be 3.2.0.
My overall goal is to seek stability and consistency in the proposed APIs.
The 3.1.6 version seems to be a solid base, so I don’t think I have to release the 3.2.0 quickly.
So I’m going to allow myself to change things in depth if needed (even if I have to admit I don’t have too many ideas to break everything at the moment).
We’ll see how it goes.

Also, this time, I won’t stop the filter updates for the latest stable version (3.1.6).
So feel free to continue pushing new filters if you have some.

3 Likes

I don’t know if this is something I’ve broken locally, but when I check the help for gradient it’s much more basic than I recall in the past:

gmic h gradient

  gradient:
      scheme,_boundary_conditions

Is that where your help read-out stops? Nothing after ‘_boundary_conditions’?

Seems that your help readout is mangled. It only has arguments two and three. Nothing else.

What I get for help, from a build last week:

gosgood@bertha ~ $ gmic -h gradient

  gradient:
      { x | y | z | c }...{ x | y | z | c },_scheme,_boundary_conditions |
      (no arg)

    Compute the gradient components (first derivatives) of selected images, along specified axes.
    (equivalent to shortcut command 'g').

    'scheme' can be { -1=backward | 0=centered | 1=forward | 2=sobel | 3=rotation-invariant (default) | 4=deriche | 5=vanvliet }.
    'boundary_conditions' can be { 0=dirichlet | 1=neumann | 2=periodic | 3=mirror }.
    (no arg) compute all significant components.

    Default values: 'scheme=0' and 'boundary_conditions=1'.

    Example:
      [#1] image.jpg gradient

    Tutorial: https://gmic.eu/oldtutorial/_gradient

gosgood@bertha ~ $ gmic -version

  gmic: GREYC's Magic for Image Computing: command-line interface
        Version 3.1.6 (pre-release #220901)
        (https://gmic.eu)

        Copyright (c) Since 2008, David Tschumperlé / GREYC / CNRS.
        (https://www.greyc.fr)

Over the last five years, gradient has grown. Here is what it offered five years ago.
From the G’MIC 2.0.2 (pre-release #170616) reference manual

2.8.44 -gradient (+)
Arguments:
• { x | y | z }...{ x | y | z }, _scheme 
• (no arg)

Compute the gradient components (first derivatives) of selected images. (eq. to ’-g’).
’scheme’ can be { -1=backward | 0=centered | 1=forward | 2=sobel | 3=rotation-invariant (default)
| 4=deriche | 5=vanvliet }.
(no arg) compute all significant 2d/3d components.
Default value:
• ’scheme=3’.

Thanks for testing that, it turned out to be user error as I feared. I had a line in my local file like this:
#@cli gradient : scheme,_boundary_conditions

That’s actually a useful feature if I want to add my own help for a command!