Forum Wiki Galerie Kontakt Wie man Fragen richtig stellt. Tutorial Forum
Zurück   GIMP-Forum 3.0 > RSS-Feeds > GIMP

Alt 26.12.2020, 04:00   #1
Registriert seit: 27.05.2008
Beiträge: 1.684
Standard [GIMP News] - ? Development release GIMP 2.99.4 is out█?

As we are progressing towards v3.0, we expect future unstable releasesto have less new features and more bug fixes and improvements.

Release highlights:
  • Usability fixes across various parts of GIMP
  • New Paint Select tool in the playground
  • New generic dialog generation and metadata support API for export plug-ins
  • Multi-threaded JPEG2000 decoding
  • Initial documentation on porting plug-ins to 3.0
GIMP 2.99.4 present for Christmas! by Aryeom, Creative Commons by-sa 4.0Usability fixes¶

Slider widget¶

We fixed several discoverability issues in the new (more compact) sliderwidget. This was mostly the result of usability tests by Aryeom afterextensive use in production.

Before, if you tried to edit the scale value numerically (i.e. by inputting numbers on keyboard), you’d also trigger a value change by using the mainmouse button click. You could avoid that by using the middle mouse buttonclick, but is was hardly discoverable.

So now you can pinpoint-click the displayed numbers. This action will only focus the text input (by default entirely selecting the existing value asis common when focusing text entries). You can still click-edit the valuefrom everywhere in the widget, except exactly on the numbers.

The second issue was related to changing the cursor depending on the context:
  • The top-arrow cursor came from a time where this widget had 2 areas, a top and bottom. It didn’t really mean anything anymore with the new interaction. We replaced it by a common “grab” cursor as defined in the CSS specification. This becomes a “grabbing” cursor when a click’n’drag is in progress.
  • When the pointer is hovering the text area, it becomes a “text” cursor instead, hence advertizing the fact that a click here would start editing the number.
  • Finally, when holding the Shift modifier key, the cursor will become a horizontal resize cursor (“col-resize” in the CSS specification), hence advertizing the ability for smaller relative resizing (an action also available with the third button, usually right-click).
GIMP 2.99.4: from left to right, new cursors on the slider to grab, when grabbing, do small updates or text-editMulti-layer selection¶

Multi-item selection in the Layers dockable comes with common keyinteractions for multiple selection such as: Shift-click for rangeselection or Ctrl-click for selection modification. These interactions clashed with some features we had on layer and mask thumbnails.For instance one could end up changing the selected layers while in thesame time create or remove layer masks by mistake.

Since the multiple layers feature is just too important and thesegeneric interactions are so well established across software (hence theirremoval or replacement not even being a question), we made the followingdesign choices:
  • No special click features in the Layers dockable should be based only on Shift, Ctrl or Shift-Ctrl modifiers, but it could include these if any additional modifier (e.g. Alt) comes to play.
  • We moved all existing features that didn’t follow such rule to the Alt+ combination.
  • For cases where all modifier combinations were taken, we removed click features based mostly on seniority (e.g. Alpha to Selection has been around pretty much since inception of GIMP while mask creation utilities were only added a few years ago).
  • Actions are now based on exact modifier combinations to avoid feature clashes (e.g. Ctrl-click should not trigger both the Ctrl-click and simple click actions).
  • Actions done when clicking a thumbnail with modifiers do not change the selection and will now operate on the clicked layer or mask, not on selected layers/masks. This makes these actions more useful as they are not redundant anymore.
The concrete consequential changes are as follows:
  • Ctrl-click on a mask thumbnail to enable/disable the layer mask has been changed to Alt-Ctrl-click. The other mask action, Alt-click for showing the mask, stays the same.
  • Shift-click and Ctrl-click actions on a layer thumbnail to respectively add (with last used values) or remove a layer mask have been removed. Indeed all Alt+ combinations are already taken on layer thumbnails (for “Alpha to Selection“, “Add Alpha to Selection“, “Subtract Alpha from Selection” and “Intersect Alpha with Selection“, respectively on Alt-click, Alt-Shift-click, Alt-Ctrl-click and Alt-Shift-Ctrl-click; we also took the opportunity to improve the Undo labels for these actions, improving discoverability on random clicks) and these “Add/Remove mask” actions were much newer (2.10.0) anyway.
  • Thumbnail popups on long click do not happen anymore when any modifier is being held, hence removing a distraction when this was obviously not what the click was for.
Input Devices dialog¶

The infamous “Input Devices” dialog has always felt packed with arcanefeatures and devices. With GIMP 3, many features will be workingout-of-the-box and it felt like the right time to clean this dialog a bit.
  • We now only show entries for actual physical devices attached to your computer. So no more “virtual devices”. Similarly we now hide the XTEST device which some kind of a test device generated by the X11 server (Linux).
  • We used to show all possible axes for all devices, including some axes like “Rotation” or “Slider” which are present very rarely (only on specific drawing styluses in the market, even uncommon among professionals). The dialog will now only list the axes returned by the backend (note that even this list may still show more than what a specific device really has because drivers are sometimes over-listing, yet it is still much closer to reality).
  • When a device is connected, the names of the axes will also be the ones as listed by the backend, which will get us closer-to-reality names. Typically the X axis for a graphics tablet will be Abs. X because these devices are usually meant for absolute pointer positioning whereas it will be Rel. X on mice.
  • Curve editing for the tablet pressure response was one of the most interesting configuration option in this dialog, even more now that we don’t need to enable or disable specific devices. This is why when a device has a “Pressure” axis, it will be selected by default, hence allowing you to directly work on the curve, without unnecessary clicks.
Call for user input:

There are a few puzzling settings in this dialog and we would welcomeinput from anyone who had an actual need for them. How were you using anyof these features? Which OS? What was the goal?
  • There used to be a “Keys” list for every device in the dialog. We actually removed this list back in 2.99.2. Based on tests, code research, and discussion with Carlos Garnacho, our local GTK and input device expert, we came to the conclusion that the “Keys” concept was tied to “keyboard” devices (a type of devices not shown in this dialog) and it was meaningless on “pointer” devices (mice, touchpads, graphics tablets…). Yet here was the option! Maybe it actually had a hidden usage to someone, someday? If this is your case, please explain us so that we can think of a way to restore the feature with an understandable interface.
  • The “Axes” list has the ability to set the “axis use” for a given axis (the little numbers next to each axis). Yet we never managed to do anything with it. This looks mostly either broken or meaningless. Has anyone a use for this axis settings?
  • Each device has 3 “modes”: Disabled, Screen, and Window. “Disabled” simply means that the device will share the main virtual device pointer while “Screen” will make it look independent. The “Window” mode, on the other hand, is a concept only meaningful for “floating” devices (a concept maybe not even valid on all platforms) and even then it looks broken, as far as our tests went. Is there anyone in the world who actually uses the “Window” mode and sees a difference with “Screen” in recent GIMP versions?
If anyone has the use for these features, we would definitely welcomefeedback because we are as puzzled as many others whether users actuallyrely on these things. On one hand, we are tempted to remove these settings, because it doesn’t make sense to show a non-working configuration. On theother hand, we don’t want to remove actual features if someone somewherehas a use for them. So if you are one of those people, please contact us.E.g. open a reportto tell us more.

Maybe there are other ways to improve this dialog for more people? Tell uswhat you expect from it!

Better device defaults¶

As explained in the 2.99.2release notes,GIMP 3 will be coming with a much better input device detection as wellas hotplug detection. So we decided to provide reasonable defaults for whena new device is detected. This would help people see if it works correctly.In particular for graphics tablets, people expect pressure to work from scratch.

For these reasons, here are the tools enabled by default the first timeyou plug a device:
  • Pen devices (tablet styluses’ main input): Paintbrush tool;
  • Eraser devices (tablet styluses’ back input): Eraser tool;
  • Touch screens (finger): Smudge tool;
  • All other devices: Paintbrush tool.
Moreover, the default dynamics when a new device is plugged is now“Pressure Size“, i.e. the brush size will increase when you press harder.

This should make the first-time experience with GIMP much more enjoyablefor people using graphics tablets, as they can directly start to painton the canvas without having first to understand all the inner settingsof GIMP’s painting system (based on the combination of brush and dynamics).

Font thumbnail adapted for Korean and Japanese¶

Our font list will now display fonts targeted at Korean and Japanesewriting systems with “?” and “?” respectively. This will allow to morequickly detect fonts useful for your language of choice in a long list.

Thumbnails in GIMP 2.99.4 of fonts targeting various writing systemsFor Korean “?” (han) was chosen (apart from being the first syllable in“Hangeul”, the name of the Korean writing system) firstly because it is asyllable with two consonants, which gives good indications on stylisticchoices, and secondly because the circle shape in ‘?’ (hieut) but alsoits small hat have many stylistic variants and are therefore alsoquite good hints of stylistic choices made by a font designer.

As for “?”, it is the first kana in the hiragana syllabary, which isone of the main components of the Japanese writing system.

The code logics is based on approximation of probable target languagedepending on supported characters found in the fonts. It may not alwaysshow the ideal sample characters, especially for fonts that try tosupport many different scripts, but it remains very useful overall.This is based on existing code, which already had detection for otherwriting systems, yet not for Korean and Japanese until now.

New experimental Paint Select tool¶

Our long-term contributor Thomas Manni is working on a new paint-basedselection tool. It will offer a new way to progressively make aselection by roughly painting with a brush over the region of interest.

This new tool is based on a targeted segmentation algorithm (graphcut):its goal is to quickly isolate a specific region in the image. The toolprovides a binary result (fully selected for the area of interest, fullynon-selected for all other pixels).

It’s at a very early stage of development, so if you test it right now,you will probably be disappointed by its lack of precision and poorperformance. Fear not, there’s just way more work to be done, you’lllike it once it’s complete.

Canvas interaction of the new Paint Select tool: quick selection of Wilber in one strokeBut what about the Foreground Select tool?

Some people might be wondering about the existing Foreground Select toolwhich might look very similar to the new experimental Paint Select tool.This quote from Thomas might explain the difference:
Foreground Select uses a matting algorithm: its goal is to provide analpha (grey) value for all “unknown” pixels. Generally it should beused only on regions where pixels’ colors are a mix of foreground andbackground colors (like strands of hair or fur).

Moreover, it is true that part of this new development comes fromrecognition of some limitations of the current Foreground Select toolwhich unfortunately does not work so well for actually segmenting globalshapes, often takes a lot of time on big images, and has memory andstability issues.

We are not aiming to replace the Foreground Select tool though. The ideais to offer a new way to do selections. We might be able to improve theForeground Select tool to work better in more situations. Discussionshave also been happening on reworking the interaction interface as a betterway to retarget the tool’s usage.

More experiments are still in progress or planned by Thomas, in particular,to give new ways to refine edges of existing selection (since thePaint Select tool creates binary selections which are less appropriatefor edge selection).

This is all to be considered as open development and experiments in freesoftware. We shall see how things evolve!

API updates¶

Dialog generation for plug-ins¶

We have been working on dialog generation for plug-ins. A plug-inhistorically comes with a “procedure” (which can be called from the corebut also from other plug-ins through the PDB protocol), withparameters and 3 run methods: interactively, non-interactively and withlast values. The non-interactive and with last values run methodsimply known parameters (given by the caller or previous calls), but an“interactive” run implies to ask for these parameters in a GUI, usuallywith added logics.

Until now, this always needed specific GUI code. We now added newfunctions for easy dialog generation from the procedure parameters. Insimplest case, you could therefore generate a full blown plug-in dialogin less than 5 lines.

Several checks were added, such as mnemonic verification, ensuring thatevery displayed property in a plug-in dialog has a unique mnemonic. Thisis a very useful feature for usability and accessibility, for people whomostly use keyboard navigation.

Similar ability used to be available on some specific bindings (Pythonand Scheme) up to the GIMP 2.10 series. Unlike this past ability, thenew functions will be available for all plug-ins (i.e. C/C++ plug-ins,but also for GObject-Introspected bindings, for instance in Python 3,JavaScript, Vala, or Lua). Moreover, the customizability is much morepowerful and will provide much better dialogs and advanced logics.

New generic metadata support API¶

With the plug-in dialog generation, we also special-cased some featuresfor export plug-ins. In particular, we tried to rework some of themetadata logics and analyzed common points across various file formats.

This goes together with a more thorough work currently done by JacobBoerema on metadata handling. Some of this work will end up in the GIMP2.10.x series, but the fundamental part might only be available in GIMP 3.

Updated file plug-ins¶

Only 4 plug-ins so far have benefited from the new generic dialoggeneration API: the PNG, JPEG, TIFF, and FLI plug-ins. In the mostextreme case, we shaved 600 lines of code off the JPEG plug-in code!

Note: we just discovered (after release) crashes on these 4 plug-ins?, which escaped us because they only happen on Windows! Pretty bad,but then it’s the joy of running unstable versions. We will fix theseas soon as possible.

PNG export dialog fully generated in a few lines of code: you don’t see much difference? That’s the point!Multi-threading preferences now available from plug-ins¶

The Preferences dialog proposes a “Number of threads to use” setting,allowing people to customize the thread usage (defaulting to systemthreads detection). This was only used by core processing until now. Wenow make this setting available to plug-ins too through thegimp_get_num_processors() API function, hence allowing plug-ins tofollow user preferences.

The HEIF/AVIF plug-in now uses this function (it was alreadymulti-threaded, yet was using system threads discovery with no way tooverride the settings until now). The JPEG2000 loading code, which wassingle-threaded until now, has been ported to use this new function,hence decoding images much faster.

Improved plug-in debugging¶

Lloyd Konneker refactored and improved the infrastructure to helpdebugging plug-ins. It is now capable of telling the difference betweenWARNING from CRITICAL bugs for better targeted debugging.

Dev docs on porting plug-ins to 3.0¶

We started documentation on porting plug-ins to 3.0a month ago. We welcome anyone who follows the API changes to lookat already ported official plug-ins in our source repository and helpwith the documentation side too. This is still moving API, yet mostof the core logics will stay the same, so the groundwork can be started already!

GEGL and babl¶

Øyvind Kolås released babl 0.1.84 and GEGL 0.4.28 in time for GIMP 2.99.4.Both releases mostly contain small fixes.

Apart from that, GEGL got two new operations:
  • “gegl:paint-select” is the backbone of the new Paint Select tool by Thomas Manni
  • “gegl:icc-load” treats .icc files as images, permitting loading a space into the graph from a file.
Øyvind Kolås spent lately much time on polishing hisctx project (a new 2D vector graphicsplatform/protocol/library/terminal we talkedabouta year ago.

Download and bug reporting¶

We need to remind that this is a development version and therefore bugs and even crashes are bound to happen. We do not advise using it in production.Nevertheless we are encouraging early tests and welcome reports as wellas patches on issues. We fixed 21 reported issues (and many moreunreported ones) since GIMP 2.99.2release andwe expect many are still unfixed. We probably even created some new ones asthe work on upcoming v3.0 continues!

Between the GIMP 2.99.2 and 2.99.4, 283 changes were committed to thisparticular development branch of GIMP in a bit less than 2 months. Thiswas quite a busy end of the year!

A Windows installer and a Flatpak build are already available:
Note: we still haven’t got a build for GIMP 2.99.4 for macOS, yet you mayhave noticed our other news from the very same day about finally releasing GIMP 2.10.22 formacOS(double Christmas ?!). So there’s a progress, and an unstable macOS package might happen soon too!

What’s next¶

A lot more work is still in-progress, so as always, we welcome anycontributions to code, buginvestigation, themes, icons, documentation, translation, website, builds…

GIMP is a community-developed software. You could think of everyone who contributed to this release as of friendly elves from all over the worldwho helped making this holiday present happen.

Oh, and one last thing. We are well aware that GTK 4.0 is out now,we have no plans switching over to it before GIMP 3.0 is released.

As usual, you can donate to the projectand personally fund several GIMP developers who make this all possibleat all. This is also a way to give back and accelerate the developmentof GIMP if you appreciate the project.

Have a very nice holiday season ?? and the end of 2020, everyone!This year was a complete mess for most people out there. But we dosincerely hope that at least some things were good for you, and maybe(just maybe) GIMP was one of those things. We sure wish 2021 to go easyon everyone!

Wilber ist offline   Mit Zitat antworten



Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[GIMP News] - GIMP 2.10.2█Released Wilber GIMP 0 20.05.2018 23:31
[GIMP News] - GIMP 2.9.4█Released Wilber Archiv 0 12.06.2017 21:40
[GIMP News] - Call for GIMP 2.10 Documentation█Update Wilber Archiv 0 12.06.2017 21:40
The GIMP 2.2.0 schumaml Neues von GIMP 8 01.07.2006 20:35
The GIMP 2.2-pre1 (Halloween Release) schumaml Neues von GIMP 2 14.11.2004 20:12

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:37 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.