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 .
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.
- G’MIC main project page : http://gmic.eu
- G’MIC plug-in for GIMP : http://gmic.eu/gimp.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 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 matrixA
. - New function
svd(A,_nb_colsA)
computes the SVD of specified matrixA
. - New function
breakpoint()
introduces a computation breakpoint in complex expressions with loops. - Function
mp_print()
andmp_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, whensize(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 asvectorExpr(value0,...)
, e.g.const N = w#0*h#0; X = vectorN(0)
. - Function
normP()
can be invoked withP
being a constant. IfP
is omitted the L2 norm is returned. - Optimization of the
math_lib
functions thanks to newly added functiondraw_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.
- New function
-
[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
.
- Command
-
[stdlib] Command
-negative
recoded from scratch and renamed as-negate
. An optionalbase_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 (eitherD50
orD65
).
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