Gimp

gimp.org
Gimp

A free, open source, cross-platform image editor. GIMP is a powerful tool for photo retouching, image composition, and image authoring. It is highly customizable, and supports a wide range of file formats.

Open Source

Gimp Source Code

Author

GNOME

Description

Read-only mirror of https://gitlab.gnome.org/GNOME/gimp

Homepage

https://gitlab.gnome.org/GNOME/gimp

Repository

  • LicenseOther
  • Created03 Jun 12
  • Primary languageC
  • Size878,648 KB
  • Stars6,501
  • Forks897
  • Watchers6,501

Language Usage

Language Usage

Project Health

Top Contributors

Recent Commits

  • Jehan(10 Oct 26)

    plug-ins: add sub-settings for DCB demosaicing.

  • Jacob Boerema(10 Oct 26)

    plug-ins/metadata: fix import/export dialog behind editor When opening the import or export file dialog from the metadata editor, it appeared behind the editor window. cmyk.student remarked in !3055 that we can fix this by not setting NULL as parent window, but instead use the editor window. While we are changing this, als remove the nearby test if (args->filename), because g_free already tests that.

  • Jacob Boerema(10 Oct 26)

    plug-ins/metadata: fix warning when file doesn't exist

  • Jehan(10 Oct 26)

    plug-ins: oups, libraw_close() now in the calling function. The variable is freed from where it's initialized!

  • Jehan(10 Oct 26)

    plug-ins: start adding some setting disabling logic. It's not finished, there will be more cases to take into account. Note also that even for these cases, I don't implement the full logic when it's just too involved. For instance the noise-reduction step will also be disabled in cases where some computed real_colors is not 3, but that would imply copying too much code and functions from LibRaw. So let's just accept that we might have some files where the "Noise reduction" setting will be active while it in fact won't change a thing. As a general rule, LibRaw lacks API for us to request status of which settings should be considered available/active or not. So that forces us to reimplement a part of the code from LibRaw::dcraw_process(). The alternative would be to show all settings all the time as active, but that would be a very bad UX.

  • Jehan(10 Oct 26)

    plug-ins: add more options to the simple RAW developer. When looking at LibRaw code, the no_interpolation setting seemed interesting to me (to transform basically the RAW sensor data directly as pixels, without any interpolation (so usually we get a Bayer filter matrix). Also I see an optional denoising step which is executed before the demosaicing itself. From what I read (e.g. in "Image Noise and Digital Image Forensics" paper from March 2016), it "is generally preferable to reduce noise as early as possible in the chain". Anyway let's give the setting and see what people think of it. I also remove the "auto" demosaicing choice and just makes "AHD" the default (this is the default in LibRaw itself). There are clearly more settings which can be proposed as I see a bunch of optionally run steps in LibRaw::dcraw_process() code. To be further investigated. I also still see cases where we should disable some settings (otherwise it'd be confusing). Let's check these later. Finally it looks like we might do the white-balance wrong, when I compare to darktable, but I'll have to discuss this with Alx first. I leave this untouched for now. See also: https://www.researchgate.net/publication/314910257_Image_Noise_and_Digital_Image_Forensics#pf5

  • Alx Sa(09 Oct 26)

    plug-ins: Additional bounds checks on WEBP export Resolves #16850 A plug-in could be written in a way to exploit exporting a WEBP image via an overflow. This patch adds a check for memory allocation and refuses to allocate and use if we overflow. This patch covers both exporting a layer or an animation frame.

  • Alx Sa(09 Oct 26)

    plug-ins: Bounds check on QOI export Resolves #16849 A plug-in could be written in a way to exploit exporting a QOI image via an overflow. This patch adds a check for memory allocation and refuses to allocate and use if we overflow.

  • Jehan(09 Oct 26)

    plug-ins: initial RAW development dialog. It looks to me like the demosaicing algorithm (how to interpolate from sensor data to pixels) is the basic setting we need to have as RAW development parameter. I've been looking into LibRaw docs and eventually directly in source to see if there was any API to get a list of available demosaicing methods. It looks like the answer is "no" as all these are apparently harcoded as integers in LibRaw::dcraw_process(). Note that looking into code, it looks like AHD may be the default, but the LibRaw code is clearly not that clear-cut and I see various paths where the user_qual (what they call the demosaicing internally, or again "quality", in their code) is not even looked at to decide for the interpolation method. So I'll have to look and test further and probably adapt the choice list and the GUI. Also the docs indicates some side settings which are only available with specific demosaicing algorithms. We'll also have to adapt the GUI to disable settings depending on others (once we'll have added more). I also realize we don't even extract the color profile, which is clearly wrong. Last but not least, it'd be much nicer if we had some kind of more instant preview. Since it's a plug-in, some optional preview code won't be as nice as GEGL ops, but it should be doable (we have this on some plug-ins). Eventually, I wonder if a concept of RAW layer would not make sense, so that we could have non-destructive demosaicing. But I'm not seeing us having such feature for quite some time, at the very least until we have way more people testing our basic plug-in first.

  • Jehan(09 Oct 26)

    app, pdb: consistently name "window handle". Core code was still naming this the "window ID" in various parts of the code (most likely named after Xlib where it's called a XID). So make the code more consistent. While doing so: * Remove 2 function declarations from gimp-gui.h which don't exist (anymore?). * Do coding style cleanup where relevant. * Fix gui_display_get_window_handle() implementation which was doing a double `if (shell)` test (the second should have likely be `if (shell->window_handle)`) and anyway it's just reimplementing the GimpProgress abstract method get_window_handle() so we use that instead.

  • Bruno Lopes(09 Oct 26)

    build/linux: Update poppler-26.08.0.tar.xz to 26.10.0 Synced from: https://github.com/flathub/org.gimp.GIMP/pull/762

  • Jehan(09 Oct 26)

    app: add short variant for "Paste as" actions. Following up with the ability to set a shorter label when in the context of a menu/submenu path. In particular here, do not repeat "Paste as" prefix while the full label is still use in the action search widget (non-contextual). A limitation of the short label concept is being unravelled with "Paste as New Image" since this action is used both in File > Create and Edit > Paste as submenus, and the same short label cannot be used in both (current short label is "From Clipboard" which works under "Create" but not under "Paste as"; oppositely "New Image" would work under "Paste as", but not under "Create"). So for now, this action is kept at using the long label under "Paste as". As for the 2 "Paste as New Brush" and "Paste as New Pattern", they are script-fu scripts, which don't have a short label concept in their API yet.

  • Jehan(09 Oct 26)

    app, pdb: add error message when procedures fail. To be fair, I'm no so sure when these would happen. Or to be more accurate, this (trying to run a PDB procedure while we are closing the plug-in communication channels) should be an error for any procedure anyway (and I believe this specific plug-in bug must be already handled by core code in fact IIRC). But well as long as it's still checked for these particular procedures, let's do it correctly by adding an error on failure case.

  • Bruno Lopes(08 Oct 26)

    tools: Fix clash between make-mac-typelib.py and defcheck.py This should fix: FAILED: [code=255] libgimp/check-def-files trouble reading libgimp/Gimp-3.0.gir - not well-formed (invalid token): line 23344, column 19

  • Dirk Müller(07 Oct 26)

    plug-ins: Fix UAF in presets_list_select_preset() There is a typo in the variable name here. this has just been freed two lines before, so this g_strdup() accesses freed memory.

  • balooii balooii(07 Oct 26)

    app/display: chain up constructed to parent class in cursor dialog Without it, the little menu which we show in all docklet dialogs will not show up for the Cursor/Pointer dialog

  • balooii balooii(13 Mar 26)

    Issue #2446: Add DPI information when copying image to clipboard An earlier commit adbac2f6804d6b6be018e8dfe2958734d13d6d54 related to this issue added setting "x-dpi" and "y-dpi" as options on the GdkPixbuf which was then passed to gtk_selection_data_set_pixbuf. Unfortunately this function does not consider any options set on the given GdkPixbuf at all so it had no effect AFAICT. gtk_selection_data_set_pixbuf internally calls gdk_pixbuf_save_to_buffer only with a hardcoded "compression" option. So the change is, as we cannot use gdk_pixbuf_save_to_buffer to call gdk_pixbuf_save_to_buffer ourselves and pass the "x-dpi" and "y-dpi" options if supported by PNG Saver loaded by gdk-pixbuf. Considerations: Not all PNG Saver implementations available via gdk-pixbuf support these properties. The newer Glycin-based implementation currently misses support while the previous variant had support for these props for quite some years. Luckily, there is an issue tracking this which is planned for next GNOME release :fingers_crossed: Since gdk-pixbuf 2.36 there is a function for checking if an option is supported or not: gdk_pixbuf_format_is_save_option_supported In GIMP meson.build the minimal gdk-pixbuf version is set to 2.30.8 so I had to add some macros for skipping this option check and setting the x-dpi and y-dpi options if gdk-pixbuf version is too old Unfortunately the newer Glycin-based loaders are seemingly used by default in latest gdk-pixbuf/GNOME release so this change will not work for these systems. My own machine (Arch Linux) ships latest gdk-pixbuf with glycin enabled where PNG x-dpi and y-dpi is not (yet) implemented. So if you want to test/use it on such systems you have to build gdk-pixbuf with glycin disabled so the older PNG impl gets used which supports it (add -Dglycin=disabled to meson setup). So fingers crossed that glycin adds support for it as planned in next GNOME release! With this, no further changes in GIMP would be necessary. If GIMP is build with a gdk-pixbuf version using a PNG loader that supports the DPI options then it just works, otherwise no DPI info is added so status quo. I don't know which gdk-pixbuf version is used for official GIMP releases and if its compiled with glycin. Closes #2446

  • Bruno Lopes(07 Oct 26)

    build/windows: Icelandic is now official See: https://github.com/jrsoftware/issrc/commit/4f709a319a2ffcd3513f8a223604cb976d6b2fe9

  • Jehan(06 Oct 26)

    NEWS: update.

  • Jehan(06 Oct 26)

    libgimpbase: minor coding style fix.

  • Manu Cornet(06 Oct 26)

    Issue #16163: Minor follow-up for filter visibility undo actions

  • Alx Sa(06 Oct 26)

    xcf: Check simulation intent/bpc before use Resolves #16834 As pointed out by codem4ster, it is possible to edit a XCF to have an empty simulation intent or BPC value. This causes our read to dereference a NULL pointer. This patch moves the dereference code inside the parasite_size check to prevent this from occurring.

  • Alx Sa(05 Oct 26)

    core: Confirm SBZ color model is set Resolves #16835 It is possible for an SBZ palette entry to not contain a color model. In that case, we prevent the string comparison code from running.

  • Alx Sa(05 Oct 26)

    core: Use correct object to load KPL palette names Resolves #16832 When setting the name of the palette, I accidentally used palette_name instead of palette as the object. This patch fixes the typo, and also frees the palette_name when overwriting in an invalid file.

  • Jacob Boerema(04 Oct 26)

    plug-ins/metadata: fix order of enums... and add a comment about that. I forgot to update the list after changing the order. Also fix spacing of one item in metadata-tags.c that I missed.

  • Alx Sa(04 Oct 26)

    plug-ins: Bounds-check importing grayscale raw data This patch adds checks to ensure that the memory allocation for both the input and output buffers of grayscale raw data loading is bounds-checked to prevent a 32-bit overflow.

  • Jacob Boerema(04 Oct 26)

    plug-ins/metadata: add missing Rejected value for Rating

  • Kolbjørn Stuestøl(04 Oct 26)

    po-plug-ins: Update Norwegian Nynorsk translation

  • Dick Groskamp(04 Oct 26)

    po-plug-ins: Update Dutch translation

  • Martin(04 Oct 26)

    po-plug-ins: Update Slovenian translation

Gimp Security

3.1/10

Repo Security Summary

Updated 24 Aug 26

  • PackagingN/A
  • Dangerous-WorkflowN/A
  • Maintained10/10
  • Token-PermissionsN/A
  • CII-Best-Practices0/10
  • Code-Review0/10
  • Security-Policy0/10
  • License9/10
  • Branch-Protection0/10
  • Signed-ReleasesN/A
  • SAST0/10
  • Binary-Artifacts10/10
  • Fuzzing0/10
  • Pinned-Dependencies0/10

Gimp Website

Website

GIMP - GNU Image Manipulation Program

GIMP - The GNU Image Manipulation Program: The Free and Open Source Image Editor

Redirects

Does not redirect

Security Checks

All 65 security checks passed

Server Details

  • IP Address151.101.193.91
  • LocationSan Francisco,California,United States of America,NA
  • ISPFastly Inc.
  • ASNAS54113

Associated Countries

  • DEDE
  • USUS
  • NLNL

Safety Score

Website marked as safe

100%

Trackers

No known trackers found

Blacklist Check

www.gimp.org was found on 0 blacklists

  • AntiSocial Blacklist
  • Artists Against 419
  • Badbitcoin
  • Bambenek Consulting
  • CERT Polska
  • CoinBlockerLists
  • CRDF
  • CryptoScamDB
  • EtherAddressLookup
  • EtherScamDB
  • Fake Website Buster
  • MetaMask EthPhishing
  • NABP Not Recommended Sites
  • OpenPhish
  • PetScams
  • PhishFeed
  • PhishFort
  • Phishing.Database
  • PhishStats
  • PhishTank
  • Phishunt
  • RPiList Not Serious
  • Scam.Directory
  • SecureReload Phishing List
  • Spam404
  • StopGunScams
  • Suspicious Hosting IP
  • ThreatFox
  • ThreatLog
  • TweetFeed
  • URLhaus
  • ViriBack C2 Tracker

Website Preview

Website preview

Gimp Docker

Container Info

Gimp

[GIMP](https://www.gimp.org/) is a free and open-source raster graphics editor used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized tasks. It is extensible by means of plugins, and scriptable.

#Image Editor

View on DockerHub

linuxserver/gimp:latest

Run Command

docker run -d \
  -p 3000:3000/tcp \
  -p 3001:3001/tcp \
  -e PUID=${PUID} \
  -e PGID=${PGID} \
  -e TZ=${TZ} \
  -v /srv/lsio/gimp/config:/config \
  --restart=unless-stopped \
  linuxserver/gimp:latest

Compose File

version: 3.8
services:
  gimp:
    image: "linuxserver/gimp:latest"
    ports:
      - "3000:3000/tcp"
      - "3001:3001/tcp"
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Etc/UTC
    volumes:
      - "/srv/lsio/gimp/config:/config"
    restart: unless-stopped

Environment Variables

  • Var NameDefault
  • PUID1000
  • PGID1000
  • TZEtc/UTC

Port List

  • 3000:3000/tcp
  • 3001:3001/tcp

Volume Mounting

  • Container PathHost Bind
  • /config/srv/lsio/gimp/config

Gimp Reviews

More Image Editors

About the Data: Gimp

Change History

  • Added #220
  • Amended (followWith)

Edit Gimp Data

You can edit Gimp's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

Origin Data

Modify Data

API

You can access Gimp's data programmatically via our API. Simply make a GET request to:

https://api.awesome-privacy.xyz/v1/services/gimp

The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.

Share Gimp

Help your friends compare Image Editors, and pick privacy-respecting software and services.
Share Gimp and Awesome Privacy with your network!