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
  • Size872,981 KB
  • Stars6,393
  • Forks887
  • Watchers6,393

Language Usage

Language Usage

Project Health

Recent Commits

  • Bruno Lopes(03 Sept 26)

    app/widgets: Fix offset on dockables DnD Closes: #12275

  • Alx Sa(02 Sept 26)

    plug-ins: Export rasterized text correctly in PDF When determining how we should export text layers, we only checked if a layer was a text layer. A rasterized text layer is still considered a text layer, so all raster changes were always discarded unless you enabled the option to export all text layers as rasters, which might not be the desired behavior. This patch adds a check for if the text layer is rasterized before rendering it as a pure text layer. Note: In the future, we'll need to update drawText to also handle text transforms once they're non-destructive.

  • Ekaterine Papava(02 Sept 26)

    po: Update Georgian translation

  • Bruno Lopes(01 Sept 26)

    build/linux: Sync with Flathub manifest

  • Bruno Lopes(01 Sept 26)

    tools: Add support to macOS 11 and earlier SDKs on defcheck Ported from: https://gitlab.gnome.org/GNOME/babl/-/commit/b12c5e85a69f05637dcda84acfbd43bc832801e3

  • Bruno Lopes(31 Aug 26)

    app/display: Fix overwhelming warning about negative dimensions on macOS Attaching lldb showed that [GdkQuartzView updateLayer] is being called before the size is allocated. Let's alocate after that to fix that timing. That may explain/fix #13203, where the glitch disappears after resizing. This code is similar to what we do on GimpOverlay widgets.

  • Alx Sa(31 Aug 26)

    plug-ins: Set PDF export dialog max width We had set the Missing Fonts label to wrap. However, because there was no maximum width set, it didn't actually do it. This patch adds an arbitrary (but common in similar dialogs in GIMP) maximum width of 80 characters to enable the line wrap setting to actually wrap.

  • Bruno Lopes(31 Aug 26)

    app, libgimpwidgets: gtk_drag_set_icon_widget is no-op on macOS This fixes a runtime warning every time we make a DnD.

  • v4vansh(15 Apr 26)

    app: Remove unnecessary Revert Rasterize prompt

  • Bruno Lopes(30 Aug 26)

    app: Add accent color support to System theme on Windows and macOS On Linux, this is unneded since the accent color derives from the theme, which is the one the user can easily change (e.g. on Ubuntu and Linux Mint). On Windows and macOS, however, since the theme is always Adwaita, we need to retrieve the color from the OS then override Adwaita blue. This helps making the theme feel more native, without the baked blue. If some thinkerer change the system theme on Win/Mac, this will not run.

  • Alx Sa(30 Aug 26)

    plug-ins: Simplify Sketchbook TIFF group loading Resolves #16412 The Sketchbook TIFF metadata contains a value that indicates whether the layer is a group or regular raster layer. While this value is marked as being something different in the unofficial documentation, it has been observed in both sample files and files output by a trial version of Sketchbook. Therefore, we can simplify the group layer creation code to just use this value to determine groups. Then, a tattoo value is set so we can use gimp-image-get-layer-by-tattoo to store the layer in the correct group.

  • Jehan(30 Aug 26)

    app: fix a comment after improved controllerrc migration. My previous commit replaced the migration rule for GimpControllerMouse removal as well, added in commit a9dce982a6. The full controller rule will now be cleanly removed at config migration. That makes the preparatory commit 57f8e233f7 not absolutely necessary anymore, since we now have better migration code, so I hesitated reverting it. After further thinking, I decided to keep it, because it still removes a case where one can have GIMP crash. You could fabricate a controllerrc with a (GimpControllerInfo) not containing a (controller) line, which would not fail the parsing, but the controller object would be NULL. This would still cleanly sanitize such a case (and therefore repair the controllerrc too by deleting the bogus module, since the file is rewritten at exit).

  • Jehan(30 Aug 26)

    Issue #16520: ignore ControllerMidi controller at migration on macOS.

  • Jehan(30 Aug 26)

    app: add a selected-drawables-changed signal to GimpImage. Per my previous commit, this is the better fix to #16105. This signal will be automatically emitted when layers or channels change, but also when the "edit-mask-changed" signal of any selected layer is emitted (even if the "selected-layers-changed" of the image is itself not emitted!). And this is now the signal which the tool manager is listening to. As a consequence, it fixes a new bug (so !2747 was not enough), because we could actually reproduce the same crash as #16105, but instead of switching from a layer and its layer mask, by switching from a named channel to another one (all the other steps are the same). Since the old code was looking at selected-layers-changed, when switching from a layer to another or from a layer to a channel (and vice-versa), the signal would be properly triggered. But not from a channel to a channel. With this new code, we look at any kind of drawable selection change (layer, layer mask and channel).

  • Jehan(30 Aug 26)

    app: rename gimp_image_active_drawable_changed() and cleanup. The function was triggering the "selected-layers-changed" signal, so it should be named accordingly. This being said, it is true that what this code was really trying to do was to signal a selected **drawable** change, since the selected layers did not change. The code from MR !2747 is indeed only working thanks to a side effect, because the tool manager is listening to this signal, though in the end, the transform tool checks the actual selected drawables (which may be layers, channels or layer masks). I also take the opportunity of this change to re-align the whole gimpimage.h header.

  • kaushik_B(28 Jul 26)

    app/core: fix crash in transform tools when swapping to layer mask switching from layer to layer masks does not halt already active transform tools and initilizes again, causing segfault. Now after layer mask swap, we emit a image selected_layers_changed signal that treats a mask switch as layer switch and preserves layer switch behaviour. added a new wrapper function, exposed through gimpimage.h and calling it in gimplayer.c on mask switch. Fixes #16105

  • Jehan(30 Aug 26)

    app: better reimplementation of conditions for edit-cut action. I am creating gimp_item_is_writable() which will look recursively not only the content lock recursively, but also if an item is non-raster (and not rasterized), also recursively (since cutting a group will cut all children too which should not be possible with non-raster items, unless rasterized). Now cutting in a group will only work: - If all children (at every level) have no content lock; - If all children are raster. … unless there is no selection! When there is no selection, the full items are indeed taken away (and possibly moved elsewhere on a future paste), yet the content is left untouched.

  • YOSHIDA Shigeto(30 Aug 26)

    po: Update Japanese translation

  • Bruno Lopes(30 Aug 26)

    app/dialogs: Make clear which GTK system theme is being used This is to avoid confusion from old GTK2 users (#10632), mainly Windows and macOS users, who may wrongly think that the "System" theme is draw by Win32 or Cocoa, which is not. This is also to avoid expections from new GTK3 users (#14023). We can not support all kind of GTK3 themes, mainly non-Adwaita. Finally, this helps a lot debugging system theme leaks. Reporters can now easly say which theme they are using.

  • Bruno Lopes(29 Aug 26)

    app/gui: Fix splash screen showing title bar on KDE

  • Jehan(29 Aug 26)

    app: further fixing MR !2340. The patch was wrong in how it was trying to decide if a group layer was content-locked: - First it was only looking 1 level under selected layers, not recursing. - Second the break case was now wrong. - Last the variable should have been renamed. A better implementation is to implement is_content_locked() similarly to is_position_locked() for GimpGroupLayer. Browsing through current usage of gimp_item_is_content_locked(), I think it won't break other uses of this test.

  • Bruno Lopes(29 Aug 26)

    app/widgets: Fix main window losing focus after using Tab on macOS Windows does not need that. Linux/Wayland will be adressed later since it is the hardest one.

  • Jehan(29 Aug 26)

    app: fix copying from group layers when some child is outside selection. Discovered while testing !2340, though it was already happening when copying group layers (and now when cutting them). We should not try to get all layers, but only root-level layers. Clearing and resizing a group layer applies to all its children.

  • cheesequake(22 Jun 25)

    app: refactor code for 'cut' operation, allow cut for layer groups This patch aims to reduce the code for 'cut', while enabling cutting layer groups. Also a change in how 'have_writable' is calculated. Layer group items are checked individually for content lock. If even 1 item has a content lock, the entire layer group cannot be cut. If many items are selected and any 1 has content lock, none of the items can be cut. Issue #14074 is resolved for 'copy', this patch resolves 'cut' as well.

  • Bruno Lopes(29 Aug 26)

    libgimpwidgets: Respect SSD title bar and action buttons order on KDE Closes: #11606 While we are not oblied to respect the UX paradigms of all DEs, KDE is not a random DE, it is the second most used AFAIK. I don't use it as my primary DE, but find pretty reasonable to fix. Tested and confirm it works so now GIMP behaves like on 2.10 for KDE.

  • Bruno Lopes(29 Aug 26)

    app/widgets: Fix wrong/tall minimum height of toolbox Closes: #7454

  • balooii balooii(14 Mar 26)

    app/widgets: Fix GimpPopup leaving stale GDK seat grab on Wayland On Wayland, the GDK seat grab established in gimp_popup_map_event() must be explicitly released with gdk_seat_ungrab() when the popup is closed. Without this, the grab persists even if the popup window got destroyed and therefore blocking all input events so GIMP appears to be frozen. Relates #11977

  • balooii balooii(14 Mar 26)

    app/widgets: Fix GimpPopup close on click for Wayland On Wayland, the routed button event seems to be in the coordiate space of the surface the mouse pointer is currently over not in the popups coord space. Fix by using root/origin/toplevel coordinate space which should work on all gdk backends. Relates #11977

  • Jehan(29 Aug 26)

    NEWS: update.

  • Harsh Verma(25 Aug 26)

    app: format copied version info as markdown the Copy Button now hands the clipboard a markdown bullet list with keys bolded, so pasted bug reports render bullet instead of dumping raw text. the on-screen box still shows plain lines.

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.1.91
  • LocationSan Francisco,California,United States of America,NA
  • ISPFastly Inc.
  • ASNAS54113

Associated Countries

  • USUS
  • NLNL
  • DEDE

Safety Score

Website marked as safe

100%

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!