This is the changelog for the release of the 2.4.0 version of the G’MIC software.
It lists all new features and changes done since the latest major version 2.3.0.
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 : https://gmic.eu
- G’MIC download : https://gmic.eu/download.shtml
- G’MIC web service : https://gmicol.greyc.fr/
- G’MIC language tutorial pages : https://gmic.eu/tutorial/basics.shtml
Enjoy !
What’s new in version 2.4.0?
New features:
Core
-
Add native commands and functions to manage inverse hyperbolic functions
acohs()
,asinh()
andatanh()
. -
Add command
noise_poissondisk
that implements the paper Fast Poisson Disk Sampling in Arbitrary Dimensions by R. Brinson. It adds a certain type of regular binary noise on 2D or 3D images, that looks like this:
(contribution by @garagecoder). -
Add commands
uchar2base64
andbase642uchar
to encode/decode image data as base64-encoded strings.
G’MIC-Qt
- Split preview mode has been recoded from scratch and most filters now allows to move the frontier between ‘Before’ and ‘After’ views. New splitting modes have been also added.
- Add filter Deformations / Stereographic projection, usually used to create mini-planets from equirectangular panoramas.
- Add filter Colors / Mixer [PCA] which gets the working color basis with a Principal Component Analysis of the image colors.
- Add filter Colors / CLUT from after-before layers. This filter is able to recover the color transformation that has been applied between a pair of images, as a HaldCLUT. This HaldCLUT can then be applied afterwards to a bunch of other images.
- Add filter Deformations / Self glitching that combines an image with a shifted version of itself with modulo arithmetics to create glitch effects.
- Add filter Frames / Frame [mirror] that add frames as mirrored parts of the image.
- Add filter Colors / Colorful blobs in order generate custom palette images composed of several color blobs, mixed together (inspired by Adobe’s Playful Palette).
- Add filter Details / Constrained Sharpen, to sharpen images without producing halos.
- Add filter UltraWarp++++ which warps images multiple times, applying many different operations before and after the warping process and most importantly after each iteration.
- Add filter Cascading Self-Glitching which is similar but has a very different mechanism of image destruction, being based on the self-glitching filter.
- Add filters Sawtoothers. They are modulo filters which operate individually on preset channels, manipulating values as if they are part of a sawtooth function. The channels can be smoothed beforehand to yield some unusual artefacts alongside the trippy colouring.
- Add filter Rectexture. It generates random textures out of rectangles.
- Add filter Hard Painting, a simple combination of two other filters: painting and multiple iterations of graphic boost. It can be used to make very glossy and high-contrast images (which are perfect for UW++++ and CSG).
- Add filter Rays from image , a specific and easy polar transform which generates multicoloured rays from the image corresponding to the point at which the rays originate (I found it while messing around with the polar transform filter).
Improvements:
Core
-
Command
pointcloud
accepts now more different image dimensions to render pointclouds. It also has a new option that retrieve the set of point coordinates from a rendered pointcloud. -
When saving image as a file where storage datatype can be specified as an option : New datatype ‘auto’ (which is now the default) auto-guesses the smallest datatype that can be used to store the image data as a file. This also applies for command
serialize
.
G’MIC-Qt
- Improve burst mode for
point()
parameters, with better interactivity with the preview window, for the filters using them. - Slight changes in design: Remove some frame borders, darken line separators.
- New keyboard shortcut
CTRL+P
allows to enable/disable the preview window. - New keyboard shortcut
CTRL+R
(orF5
) to update filters. - Filter Rendering / Mandelbrot - Julia sets has been recoded from scratch and eases now the navigation in the fractal sets.
-
Added preview image cache system to reduce the number of API calls to the host software, when displaying the preview widget.
-
Improvement of filter Artistic / Polygonize with more options, e.g. allowing to fill Delaunay triangles with linearly interpolated colors.
-
Changed the behavior of the preview zoom. By default, it is not possible to zoom in/out the previewed image anymore if it renders a non-accurate preview. Old behavior (zoom is always possible) can be restored from the ‘Settings’ dialog.
-
Improve translation capabilities for individual filters, with new pragma
#@gui_xx hide(filter or folder name)
that can be used to hide the english version of a filter once it has been translated to another localexx
.
ZArt
- Updated available filters, and added support of
point()
parameters.
Bug fixes:
Core
- Change zooming behavior of 3d object with right mouse button (invert direction) when in volumetric image view (activated with CTRL+V).
- Bugfix in command
guided
(guided filtering) when guide had less channels than source image. - Bugfix in loader of
.pfm
image files. Malformed files were trying to allocate a lot of
memory. - Bugfix in command
map
with predefined colormap and boundary condition set tomirror
. - Bugfix in command
blur_angular
. Now manage periodic boundaries.
G’MIC-Qt
- Some code refactorization and small bug fixes.
- Fixed bug when defining filters with
point()
parameter in burst mode : size of the image given to the preview command was occasionally wrong, leading to (slow) computation of the preview on the full-size image. - Fixed preview rendering bug when input images are float-valued with out-of-range values (<0 or >1.0).
ZArt
- Add missing include for QButtonGroup.
- Compiles again with Qt 4.8 2.