GREYC CNRS ENSICAEN UNICAEN
A Full-Featured Open-Source Framework for Image Processing

Latest stable version: 2.9.2        Current pre-release: 2.9.3
Download
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)


Here you can download sources and binaries of G'MIC for various architectures.
If you appreciate the efforts we make on developing the G'MIC software, please support us with a small donation (via Paypal and our partner, the LILA association).


I'd like to support G'MIC development and I happily give:

Latest donations received:
Latest donations

For bandwidth saving reasons, some of our binary packages are hosted by our partner FOSSHUB.


   G'MIC plug-in for GIMP

   G'MIC plug-in for Krita (3.2+)


   G'MIC plug-in for Paint.NET


   G'MIC for Python
$ pip install gmic

   G'MIC for Windows - Other interfaces


   G'MIC for Debian - All interfaces


   G'MIC for Ubuntu - All interfaces


   G'MIC source code


   G'MIC OpenFX plug-ins
  • Installers/source for Windows/Mac/Linux


   G'MIC pre-release for testing
source and Windows/Linux installers/binaries


   Browse all files
Other means

Packaging status latest packaged version(s)

  • PPA for Ubuntu: On Ubuntu (Linux), there is a frequently updated PPA (Personal Package Archives), maintained by Thorsten "otto" Stettin which may be used to ease the installation of G'MIC, and to get quick updates as well.
    To enable Thorsten's PPA, type the following commands in a terminal:

    sudo add-apt-repository ppa:otto-kesselgulasch/gimp
    sudo apt update
    sudo apt install gmic gimp-gmic

  • Packages for Fedora: should be available here.
  • Packages for Gentoo: should be available here.

From source (Linux)

The source code of G'MIC is shared between several git repositories with public access. Accessing it via git ensures you get the latest code available, and will ease the source updates as well. 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 libopencv-dev \
  libcurl4-openssl-dev libfftw3-dev qt5-default qtbase5-dev
        

Then, get the G'MIC source from the different repositories:

$ git clone --depth=1 https://github.com/dtschump/CImg.git
$ git clone --depth=1 https://github.com/dtschump/gmic.git
$ git clone --depth=1 https://github.com/c-koi/gmic-qt.git
$ git clone --depth=1 https://github.com/c-koi/zart.git
        
You are now ready to compile all G'MIC interfaces: gmic (command-line tool), gmic_gimp_qt (plug-in for GIMP), gmic_krita_qt (plug-in for Krita), ZArt and libgmic (G'MIC C++ library). Just pick your choice:
$ cd gmic/src
$ make cli         # Compile command-line interface
$ make gimp        # Compile plug-in for GIMP
$ make krita       # Compile plug-in for Krita
$ 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.

From source (Windows)

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
    • Create a link for pkg-config.exe in folder /mingw64/bin:
      $ cd /mingw64/bin && ln -s pkgconf.exe pkg-config.exe
    • 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:
      $ git clone --depth=1 https://github.com/dtschump/CImg.git
      $ git clone --depth=1 https://github.com/dtschump/gmic.git
      $ git clone --depth=1 https://github.com/c-koi/gmic-qt.git
      $ git clone --depth=1 https://github.com/c-koi/zart.git
                        

  • Compilation of gmic (CLI interface):

    • Go to gmic/ source folder:
      $ cd gmic/src/
    • Compile with provided Makefile (OpenCV disabled here, as it's almost useless and adds a lot of dependencies):
      $ make OPENCV_CFLAGS="" OPENCV_LIBS="" 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 OPENCV_CFLAGS="" OPENCV_LIBS="" 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_krita_qt (plug-in for Krita):

    Same as above, but invoke qmake with:

    $ qmake HOST=krita

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

    Same as above, but invoke qmake with:

    $ qmake HOST=paintdotnet

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.