Ontwikkelingsupdate, augustus 2026 - GIMP

De afgelopen maanden hebben we gewerkt aan diverse functies voor de toekomstige GIMP 3.4-release. We merkten onlangs dat ons changelog behoorlijk lang werd — een luxe-probleem!

Hoewel er intern veel is gebeurd, is het alweer een tijdje geleden dat we een publiek voortgangsrapport hebben gedeeld. Daarom willen we details delen over enkele van de nieuwe functies en UX-verbeteringen die beschikbaar zullen zijn in de eerste ontwikkelversie, GIMP 3.3.2. Dit is geen uitputtende lijst (we moeten wat nieuws bewaren voor de release zelf!), maar hopelijk geeft het inzicht in de huidige richting en voortgang van de GIMP-ontwikkeling.

Nieuw projectbestandformaat

De focus van onderhoudsbeheerder Jehan lag onlangs op de ontwikkeling van een nieuw projectbestandformaat voor GIMP.

XCF is sinds 1997 het primaire projectformaat van GIMP en heeft veel gebruikers goed gediend. Na verloop van tijd hebben we echter steeds meer beperkingen geconstateerd van het binaire XCF-formaat. Onder andere ondersteunt het niet gemakkelijk zeer grote of complexe projecten, zoals de functies voor meerdere pagina's en animaties die momenteel gepland zijn voor GIMP 3.6.

Het nieuwe projectbestandformaat zal een meer gangbare "zipped XML"-structuur volgen. Hoewel de technische details nog worden ontworpen en geïmplementeerd, zal deze wijziging zorgen voor sneller opslaan, omdat we alleen delen van het bestand hoeven bij te werken in plaats van telkens het geheel. Dit legt ook de basis voor veelgevraagde functies zoals automatisch opslaan, wat nu veel haalbaarder is.

Dit betekent niet dat XCF verdwijnt. Achterwaartse compatibiliteit is belangrijk voor ons en we zullen het laden van XCF-bestanden in alle toekomstige versies van GIMP blijven ondersteunen. (We zijn bijvoorbeeld trots dat een XCF-bestand dat in 1998 door een klein bedrijf voor hun logo is gemaakt, nog steeds op dezelfde manier wordt weergegeven in de nieuwste versie van GIMP).

Vooruitkijkend zullen we ondersteuning voor het opslaan en laden van nieuwe functies echter pas toevoegen aan het nieuwe projectbestandformaat zodra dit is gefinaliseerd.

MyPaint-penseel: Spectrale menging

Tijdens de ontwikkeling van GIMP 3.2 zijn we overgestapt op een nieuwere versie van de MyPaint-penseelengine. Hoewel dit nieuwe penselen en canvasinteracties bracht naar de MyPaint-penseeltool, was er één functie die ontbrak: Spectrale menging (Spectral Blending).

Spectrale menging simuleert de effecten van het mengen van fysieke pigmenten in digitale kunst. Bijvoorbeeld: het mengen van geel en blauw produceert een groene kleur in plaats van donkergeel, en het mengen van rood en geel creëert een oranje mix.

Gelukkig heeft nieuwe contributor Cassidie Grogan dit gat opgevuld en deze functie geïmplementeerd. Er is nu een selectievakje voor "Spectral Blending" in de MyPaint Brush Tool Options. Als dit is aangevinkt, wordt de nieuwe mengmethode gebruikt. De sterkte van de menging kan worden geregeld met de pigment-schuifregelaar.

Daarnaast heeft onderhoudsbeheerder Michael Natterer de preview-code van de MyPaint-penselen verbeterd, zodat deze op volledige grootte worden weergegeven in plaats van 48x48 pixels. Dit lost een probleem op waarbij de previews wazig verschenen op grotere schermen.

Niet-destructieve bewerkingen

Alx Sa heeft updates doorgevoerd in onze code voor niet-destructieve filters. Enkele highlights:

  • Laagmaskers: Filters kunnen nu niet-destructief worden toegepast op laagmaskers. In combinatie hiermee is de filter-popover herontworpen door Reju om de actieve filters voor zowel de laag als het masker te tonen, zodat je met beide op hetzelfde scherm kunt communiceren.
  • Verlooptool (Gradient Tool): Deze kan nu niet-destructief worden gebruikt. Als "Editable Gradient" in de toolopties is aangevinkt, wordt het gemaakte verloop toegevoegd aan de filterstack zoals elk ander effect. Je kunt de zichtbaarheid schakelen, de positie in de filterstack wijzigen of het verloop verwijderen. Ook kun je het verloop bewerken, waarbij de focus terugschakelt naar de Gradient Tool voor verdere wijzigingen.
  • Niet-rasterlagen: Filters zonder dialoogvensters (zoals Inverteren) kunnen nu niet-destructief worden toegepast op niet-rasterlagen, zoals laagengroepen en link-, tekst- en vectorlagen.

Verbeteringen in PSD-ondersteuning

Er is zoveel werk verricht aan de PSD-ondersteuning door zoveel mensen, dat we dit apart willen belichten.

Ten eerste heeft nieuwe contributor Frank Teklote de compatibiliteit met PSD's verbeterd. Zijn belangrijkste project voor deze release was het creëren van een PSD-metadata-exportprocedure voor TIFF's en JPEGs. Dit vult onze bestaande PSD-metadata-importprocedure aan, wat betekent dat als je een JPEG met paden of een TIFF met lagen importeert (of deze in GIMP maakt), die informatie nu behouden kan worden in het geëxporteerde beeld. Een voordeel van Franks werk is dat de TIFF- en JPEG-exportfuncties automatisch zullen profiteren van toekomstige verbeteringen in de PSD-compatibiliteit.

Daarnaast heeft Jacob Boerema ondersteuning geïmplementeerd voor de import van PSD-descriptors. Veel van onze huidige PSD-ondersteuning was gebaseerd op de publieke Adobe-specificatie, maar deze is voor het laatst bijgewerkt in 2019. Moderne PSD's gebruiken een relatief ongedocumenteerd tekstformaat genaamd "Descriptors" om veel functies op te slaan.

Nu GIMP descriptors kan lezen, zijn we de PSD-import aanzienlijk aan het verbeteren. Enkele updates:

  • Tekstlagen zijn nu bewerkbaar.
  • Een aantal aanpassingslagen en moderne laagstijlen verschijnen als hun GEGL-equivalenten.
  • Effen kleurvormen worden geïmporteerd als vectorlagen.

Dit is een actief ontwikkelingsgebied, mede door GSoC-studenten Akascape en Waris Maqbool. We hopen dat dit het voor GIMP-gebruikers makkelijker maakt om met bestaande PSD-projecten te werken.

Inheemse bestandsselectie-dialogen

GIMP heeft altijd gebruikgemaakt van de bestandsselectie-dialoog die wordt geleverd door de GTK GUI-bibliotheek. Hoewel deze dialoog functioneel is, werkt hij vaak anders dan de "inheemse" (native) bestandsselectie op niet-GNOME-platforms zoals Windows, macOS en KDE. Bovendien waren er wijzigingen in de UI van deze dialoog in GTK3 die voor veel feedback zorgden in onze issue tracker.

Daarom is Alx Sa begonnen met het overzetten van de bestandsselecties van GIMP naar de "native" optie die wordt geboden in GTK3. Dit betekent dat je bij het openen of opslaan van een bestand de standaard dialoog van jouw platform ziet in plaats van de GTK-dialoog (tenzij jouw platform die al gebruikt, in welk geval er niets verandert).

Veel van de eenvoudige dialogen zijn al geconverteerd. Dialogen met complexere extra functies vereisen een herontwerp van de workflow, waar we momenteel aan werken.

Gebruikerservaring en interface-updates

Diverse contributors hebben verbeteringen aangebracht in de gebruikersinterface (UI) en gebruikerservaring (UX).

  • Iconen en Cursors: Designer Denis Rangelov heeft de UI-iconen bijgewerkt. Hij heeft de iconen voor laagvergrendeling opnieuw gemaakt voor een consistentere look. Ook heeft hij alle 78 cursor-iconen omgezet naar SVG, waardoor ze schaalbaar zijn voor hogeresolutie-schermen zonder kwaliteitsverlies.
  • Canvas-prestaties: Er waren prestatieproblemen gemeld bij het tekenen of zoomen wanneer het canvas was gedraaid. Nieuwe contributor woot000 heeft dit opgelost; het "schaakbord"-transparantiepatroon roteert nu niet meer mee met het canvas, wat de prestaties bij het schilderen of bewerken aanzienlijk verbetert. Ook is een bug opgelost waarbij het patroon verdween bij extreem inzoomen.
  • Search Action UI: Gabriele Barbero heeft een redesign geïmplementeerd van de Search Action UI (ontworpen door Denis Rangelov). De nieuwe lay-out maakt de bijbehorende sneltoets zichtbaarder en is consistenter met de menu-lay-outs.
  • macOS: Bruno Lopes heeft gewerkt aan het oplossen van problemen met pop-up dialoogvensters op macOS.
  • Pattern Dock: Nieuwe contributor Andreas Vukman heeft de weergave van het Pattern dock verbeterd. Kleinere patronen worden nu betegeld om de beschikbare ruimte te vullen, wat zorgt voor een consistente preview voor alle patronen.
  • Teksteditor: Richard Gitschlag heeft de tekst-editor op het canvas bijgewerkt, zodat selecties mogelijk zijn via Shift+Klik, vergelijkbaar met tekstverwerkers zoals LibreOffice.
  • Metadata Editor: Ahmed E. Yassin heeft het importeren en exporteren van metadata intuïtiever gemaakt door het dropdown-menu te vervangen door twee knoppen.
  • Widgets: Ondřej Míchal heeft diverse delen van de UI bekeken en veel instanties van de Spin Entry-widget vervangen door Spin Scale, wat de bruikbaarheid verbetert wanneer de breedte van het venster is verkleind.

Diverse wijzigingen en fixes

Onze vier GSoC-stagiairs zijn doorgegaan met hun werk. Onlangs is het Sharpen-filter van Waris Maqbool samengevoegd in GEGL, waardoor het beschikbaar zal zijn in de volgende GEGL-release.

Overige technische updates:

  • Windows-ondersteuning: Dimitriy Ryazantcev heeft patches ingediend voor de ondersteuning van Windows ICO/CUR/ANI-bestanden, inclusief fixes voor 32-bit ICO-formaten en verbeterde preview-algoritmen.
  • NDE-filters: Estecka heeft een renderprobleem opgelost bij het toepassen van NDE-filters op passthrough-laagengroepen.
  • Sneltoetsen: Petr Vorel loste een bug op waarbij Alt+0 niet het tiende meest recente beeld uit de geschiedenis opende.
  • Script-fu: Lloyd Konneker loste een regressie op in third-party scripts waarbij het bereik van bepaalde parameters niet in de GUI werd getoond.
  • Beveiliging: Jacob Boerema en Alx Sa hebben een aantal beveiligingsrapporten over potentiële fouten in enkele image plug-ins afgehandeld en gepatcht.

Wat volgt er nu?

Er is meer werk in uitvoering dat we binnenkort met jullie zullen delen. Er is nog geen officiële 3.3.2 ontwikkelrelease, omdat enkele roadmap-items nog in behandeling zijn. Wie echter avontuurlijk is, kan de "nightly" builds proberen (zie de sectie Automatic Development Builds).

Ondertussen plannen we de release van GIMP 3.2.6 in de komende weken. Dit is een stabiele release, dus deze bevat niet de nieuwe functies die hier beschreven staan, maar wel een aantal belangrijke bugfixes en kleine verbeteringen. Meer details hierover volgen in het nieuwsbericht over de 3.2.6 release.