I'm happy to announce the release of a new version (numbered 1.7.8
) of the G'MIC image processing framework
Of course, the G'MIC plug-in for GIMP
has been updated as well!
As always, I encourage upgrading to this new version as soon as possible
In particular, note that this version is not
backward-compatible with the previous one (1.7.7
), meaning that all new filters added here and new future filter updates will be only available for versions >=1.7.8
Here is what the latest version looks like, as the GIMP plug-in: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.
main project page : http://gmic.eu
plug-in for GIMP
web service : https://gmicol.greyc.fr/
language tutorial pages : http://gmic.eu/tutorial/basics.shtml
The following is the full Changelog
of the version 1.7.8
, as compared to the previous stable version 1.7.7
Enjoy !New features:
- A lot of new features and improvements in the embedded math evaluator of G'MIC:
- Various optimizations and bug fixes, e.g to simplify compiled code when particular cases are detected (e.g. `1*x+0*y
` reduces to `x
`). Now, defining `const
` scalar variables is also possible for help the JIT
optimizing some expressions.
- New command `-math_lib
` returns a string containing useful macros for the math parser (e.g. `draw_line()`, `draw_circle()`, `draw_triangle()`, `hsv2rgb()` ...
- New function `unref(variables_names)
` un-references already defined variables. It helps creating macro functions where arguments can be of any type (e.g. an argument `color
` can be a scalar or a vector).
- New functions `break()
` and `continue()
` can be used to break / continue the current code bloc (e.g. loops), just as in the C
- Function `print()
` can take multiple arguments now to print their values on the console.
- Defining user macros becomes a lot more flexible. Macros with the same name but different number of parameters can be overloaded. Macro argument substitution has been improved. For instance, this kind of expressions is now possible in the math parser:
seq(size,x,fnx) = ( V = vector#size(); for (#x = 0, x<size, ++x, V[x] = fnx); V );
A = seq(10,k,(k+1)^2); # will set A = [ 1,4,9,16,25,36,49,64,81,100 ];
- New command `-input_sample
` (eq. to `-is
`) returns a sample image that can be used for quick tests with G'MIC operators and pipelines (e.g: `$ gmic -is lena
- New command `-display_quiver
` (eq. to `-dq
`) renders a field of 2d arrows from an image of 2d vectors (similar to `-display_tensors
` but for displaying 2d vectors).
- New command `-shape_fern
` renders the Barnsley fern fractal
with an arbitrary angle.
- New GIMP filter Rendering / Barnsley fern
is a GIMP plug-in interface to the command `-shape_fern
- New filter Patterns / Crystal background
renders multiple colored polygons to create cool geometric patterns.Improvements:
- Command `-polygon
` has been recoded from scratch, and now uses multi-threading (through OpenMP) to rasterize a polygon on an image.
- Add optimizations for median computation from a set of 5,7,9 or 13 values.
- Command `-display_tensor
` has been recoded from scratch, using the new features of the math parser. The command is faster to render, allows tensors to have an outline and to overlap.
- Add optional `[guide]
` argument to command `-nlmeans
` (similar to the guide argument of commands `-bilateral
` and `-guided
- Improvement of GIMP filters Custom code
, with optional debug information displayed on the preview window. It also supports multi-layers as input now.
- New "Duplicate" options for parameter `Preview type`. Now the user has additional choices `Duplicate top`, `Duplicate left`, `Duplicate bottom` and `Duplicate right`.
- Two environment variables `_preview_width
` and `_preview_height
` are now passed from G'MIC to the G'MIC interpreter. It should ease the rendering of good-sized preview by filters that change the image size or that work with several input layers.Bug fixes:
- Commands `-dilate
` and `-erode
` return correct images when applied with an "empty" mask (where all mask values are set to zero).
- ...and many other small bug fixes !