G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (2024)

Roddy, the mascot of the 'Rodilius' filter in G'MIC, artwork by Mahvin.

Roddy, the mascot of the 'Rodilius' filter in G'MIC
(artwork by Mahvin)

G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (3) G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (4)

Here you can download the sources of G'MIC and find pre-compiled binaries of the different G'MIC interfaces for various architectures.

G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (8)
  • Windows:
    • .exe installer: stable (or latest dev)
    • .zip archive: stable (or latest dev)
  • Linux: .zip archives available for
    • Ubuntu 24.04 Noble: stable (or latest dev)
    • Ubuntu 22.04 Jammy: stable (or latest dev)
    • Ubuntu 21.10 Impish: stable (or latest dev)
    • Ubuntu 20.04 Focal: stable (or latest dev)
    • Debian 12 Bookworm: stable (or latest dev)
    • Debian 11 Bullseye: stable (or latest dev)
  • Flatpak:
  • MacOS: We do not officially maintain a MacOS build of G'MIC. We are aware that some people have successfully built the G'MIC-Qt plug-in for GIMP. You may find useful resources here and here (use at your own risk!).
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (9) G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (10) G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (11)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (12) G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (13)
  • Windows:
    • G'MIC-Qt plug-in on Adobe Exchange: stable
    • .zip archive: stable
  • Installation:
    • Read the Installation Guide.
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (14)
  • Windows:
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (15)

$ pip install gmic

G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (16)
  • G'MIC-Qt stand-alone interface:
    • .zip archive: stable (or latest dev)
  • Command-line interface (CLI):
    • .zip archive: stable (or latest dev)
  • C/C++ library:
    • .zip archive: stable (or latest dev)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (17)
  • Debian 12 Bookworm: stable (or latest dev)
  • Debian 11 Bullseye: stable (or latest dev)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (18)
  • Ubuntu 24.04 Noble: stable (or latest dev)
  • Ubuntu 22.04 Jammy: stable (or latest dev)
  • Ubuntu 21.10 Impish: stable (or latest dev)
  • Ubuntu 20.04 Focal: stable (or latest dev)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (19)
G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (20)

G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (22) G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (23)

  • Packages for Fedora: should be available here.

The source code of G'MIC is shared between several github repositories with public access. The code from these repositories are intended to be work-in-progress though, so we don't recommend using them to access the source code, if you just want to compile the various interfaces of the G'MIC project. Its is recommended to get the source code from the latest .tar.gz archive instead.

Here are the instructions to compile G'MIC on a fresh installation of Debian (or Ubuntu). It should not be much harder for other distros. First you need to install all the required tools and libraries:

$ sudo apt install git build-essential libgimp2.0-dev libcurl4-openssl-dev libfftw3-dev libtiff-dev libjpeg-dev libopenexr-dev qtbase5-dev qttools5-dev-tools

Then, get the G'MIC source :

$ wget https://gmic.eu/files/source/gmic_3.4.0.tar.gz && tar zxvf gmic_3.4.0.tar.gz && cd gmic-3.4.0/src

You are now ready to compile the G'MIC interfaces:

  • gmic (command-line tool),
  • gmic_gimp_qt (plug-in for GIMP),
  • ZArt and
  • libgmic (G'MIC C++ library).

Just pick your choice:

$ make cli # Compile command-line interface
$ make gimp # Compile plug-in for GIMP
$ make lib # Compile G'MIC library files
$ make zart # Compile ZArt
$ make all # Compile all of the G'MIC interfaces

and go out for a long drink (the compilation takes time).

Note that compiling issues (compiler segfault) may happen with older versions of g++ (4.8.1 and 4.8.2). If you encounter this kind of errors, you probably have to disable the support of OpenMP in G'MIC to make it work, by compiling it with:

make OPENMP_CFLAGS="" OPENMP_LIBS=""

Also, please remember that the source code in the git repository is constantly under development and may be a bit unstable, so do not hesitate to report bugs if you encounter any.

On Windows, compiling executables of the different G'MIC interfaces is not that hard. It requires the following steps:

  • Set up of the compiling environment:
    • Install MSYS2, from https://www.msys2.org/.
    • Launch MSYS terminal (MSYS2 MinGW 64-bit), then update default installed packages with:

      $ pacman -Syu

    • Install required additional packages (beware, it will take a lot of time and disk space, around 3GB):

      $ pacman -Sy mingw64/mingw-w64-x86_64-qt5 mingw64/mingw-w64-x86_64-gimp mingw64/mingw-w64-x86_64-pkgconf mingw64/mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-fftw make git

    • Add /mingw64/bin to $PATH, by adding following line in file $HOME/.bash_profile:

      PATH="/mingw64/bin:${PATH}"

    • Close terminal, and relaunch it. Now all required tools to compile are avalaible from the terminal.
    • Retrieve source code of G'MIC interfaces:

      $ wget https://gmic.eu/files/source/gmic_3.4.0.tar.gz && tar zxvf gmic_3.4.0.tar.gz && cd gmic-3.4.0


  • Compilation of gmic (CLI interface):
    • Go to src/ source folder:

      $ cd src/

    • Compile with provided Makefile:

      $ make cli

      You may want to disable Link-Time-Optimization to save memory usage when compiling, because g++ eats a lot of memory when LTO is enabled. In that case, type:

      $ make FLTO="" cli

      instead.
    • When compilation succeeds, G'MIC CLI executable can be found in current directory, i.e. gmic/src/gmic.exe.
    • Copy needed DLL for the gmic.exe executable. They are all found in /mingw64/bin/:

      $ cd /mingw64/bin/ && cp libgcc_s_seh-1.dll libwinpthread-1.dll libgomp-1.dll libstdc++-6.dll libcurl-4.dll libbrotlidec.dll libbrotlicommon.dll libcrypto-1_1-x64.dll libidn2-0.dll libiconv-2.dll libintl-8.dll libunistring-2.dll libnghttp2-14.dll libpsl-5.dll libssh2-1.dll zlib1.dll libssl-1_1-x64.dll libzstd.dll libfftw3-3.dll libjpeg-8.dll libpng16-16.dll libtiff-5.dll liblzma-5.dll PATH_TO_EXE/


  • Compilation of gmic_qt (stand-alone Qt-based interface):
    • Go to gmic-qt/ source folder:

      $ cd gmic-qt/

    • Generate Makefile with qmake:

      $ qmake HOST=none

      For an unknown reason, qmake sometimes takes a lot of time to end, hanging 5 minutes or so without displaying any messages. But at the end, it just works, so be patient!
    • Compile with generated Makefile:

      $ make -j4 release

    • When compilation succeeds, G'MIC-Qt executable can be found in directory release/gmic_qt.exe.
    • Copy needded DLL for the gmic_qt.exe executable:

      $ cd /mingw64/bin/ && cp libgcc_s_seh-1.dll libwinpthread-1.dll libgomp-1.dll libstdc++-6.dll libcurl-4.dll libbrotlidec.dll libbrotlicommon.dll libcrypto-1_1-x64.dll libidn2-0.dll libiconv-2.dll libintl-8.dll libunistring-2.dll libnghttp2-14.dll libpsl-5.dll libssh2-1.dll zlib1.dll libssl-1_1-x64.dll libzstd.dll libfftw3-3.dll libpng16-16.dll Qt5Core.dll libdouble-conversion.dll libicuin67.dll libicuuc67.dll libicudt67.dll libpcre2-16-0.dll Qt5Gui.dll libharfbuzz-0.dll libgraphite2.dll libfreetype-6.dll libbz2-1.dll libglib-2.0-0.dll libpcre-1.dll Qt5Network.dll Qt5Widgets.dll PATH_TO_EXE/

    • Copy required Qt platform files:

      $ cp -rf /mingw64/share/qt5/plugins/platforms PATH_TO_EXE/


  • Compilation of gmic_gimp_qt (plug-in for GIMP):

    Same as above, but invoke qmake with:

    $ qmake HOST=gimp


  • Compilation of gmic_paintdotnet_qt (plug-in for Paint.NET):

    Same as above, but invoke qmake with:

    $ qmake HOST=paintdotnet

In order to check if G'MIC works correctly on your system, you may want to execute the command and filter testing procedures. Assuming the CLI tool gmic is installed on your system, here is how to do it (on an Unix-flavored OS, adapt the instructions below for other OS):

$ mkdir -p testing && cd testing
$ gmic it https://gmic.eu/gmic_stdlib.\$_version parse_cli images
$ gmic it https://gmic.eu/gmic_stdlib.\$_version parse_gui images

These commands scan all G'MIC stdlib commands and G'MIC-Qt filters, and generate the images corresponding to the execution of these commands, with default parameters. Beware, this may take some time to complete!

G'MIC is an open-source software distributed under the CeCILL free software licenses (LGPL-like and/or
GPL-compatible). Copyrights (C) Since July 2008, David Tschumperlé - GREYC UMR CNRS 6072, Image Team.

G'MIC - GREYC's Magic for Image Computing: A Full-Featured Open-Source Framework for Image Processing (2024)

References

Top Articles
Latest Posts
Article information

Author: Nathanial Hackett

Last Updated:

Views: 6165

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Nathanial Hackett

Birthday: 1997-10-09

Address: Apt. 935 264 Abshire Canyon, South Nerissachester, NM 01800

Phone: +9752624861224

Job: Forward Technology Assistant

Hobby: Listening to music, Shopping, Vacation, Baton twirling, Flower arranging, Blacksmithing, Do it yourself

Introduction: My name is Nathanial Hackett, I am a lovely, curious, smiling, lively, thoughtful, courageous, lively person who loves writing and wants to share my knowledge and understanding with you.