514 lines
23 KiB
Plaintext
514 lines
23 KiB
Plaintext
------------------------------
|
|
GNU Image Manipulation Program
|
|
2.10 Stable Branch
|
|
------------------------------
|
|
|
|
This is the stable branch of GIMP. Unlike earlier stable branches,
|
|
we do allow some new features here, if they are not too invasive.
|
|
Otherwise, this branch is only for bug-fixes.
|
|
|
|
Overview of Changes from GIMP 2.10.8 to GIMP 2.10.10
|
|
===================================================
|
|
|
|
Core:
|
|
|
|
- Add gimp-scratch allocator, a fast memory allocator (on the order of
|
|
magnitude of alloca()), suitable for small (up to a few megabytes),
|
|
short-lived (usually, bound to the current stack-frame) allocations.
|
|
Unlike alloca(), gimp-scratch doesn't use the stack, and is therefore
|
|
safer, and will also serve bigger requests, by falling-back to malloc().
|
|
- In gimp_drawable_transform_buffer_affine(), avoid modifying the
|
|
clipping mode when transforming layer masks, since this function
|
|
is used (among other things) to transform layer masks together with
|
|
their layer, in which case they should use the same clipping mode
|
|
as the layer. This fixes a regression introduced by commit 2ae823ba,
|
|
causing layer masks to be transformed with a mismatched clipping mode
|
|
during layer transforms, leading to discrepencies between the
|
|
transformed layer and the transformed mask.
|
|
- Moved swap/cache and temporary files out the GIMP user config dir and
|
|
added new config file substitutions ${gimp_cache_dir} and
|
|
${gimp_temp_dir}.
|
|
- Pass the GEGL tile-cache size, swap path, and thread-count to plug-ins
|
|
as part of their config, and have libgimp set the plug-in's GeglConfig
|
|
accordingly upon initialization.
|
|
- Layer groups are now rendered in bigger chunks rather than tile-by-tile
|
|
(which used to pretty much eliminate multithreading for groups), which
|
|
improves the rendering speed.
|
|
- Make saving/exporting files more robust to errors. In particular if
|
|
an error occurs during the process (be it a bug, a memory error, or
|
|
anything else), GIMP won't overwrite anymore any existing file with
|
|
incomplete contents, so that you won't end up with no valid files at
|
|
all.
|
|
- Fix a regression on support of various graphics tablet.
|
|
- Remove the "Edit -> Fade..." feature: it makes GIMP use two buffers
|
|
instead of one (east into system resources), it's broken in 2.10, and
|
|
we can make the UX better for filters.
|
|
- New generic canvas modifier 'Alt + middle click' allowing to pick
|
|
layers by clicking on pixels. The available layers will be looped
|
|
through (starting from the upper one) while Alt key is hold and the
|
|
picked layer name will be temporarily displayed in the status bar.
|
|
- When clearing a channel, do nothing if the channel is already empty;
|
|
otherwise, align the cleared rectangle to the channel buffer's tile
|
|
grid, so that all affected tiles are dropped, rather than zeroed.
|
|
Furthermore, only update the affected region of the channel.
|
|
- Brush and pattern saving logics has been moved to core code (instead
|
|
of plug-in).
|
|
- Clipboard brushes and pattern can now be duplicated.
|
|
- Add an "Open as Image" button to the brushes dialog.
|
|
- Parametric brushes are now 32-bit float to avoid posterization on
|
|
large brushes.
|
|
Note: raster brushes are still 8-bit and plug-ins only have access
|
|
to 8-bit versions of high-precision brushes/patterns. New API will
|
|
be required to handle high-precision data.
|
|
- On-canvas preview while editing a color in the colormap of an
|
|
indexed image.
|
|
|
|
User interface:
|
|
|
|
- Enabled HiDPI/Retina support for the GTK2/OSX build, fixes blurry icons.
|
|
- Add a tooltip to the "better compression" checkbox in save dialog to
|
|
make it clearer it does not mean that the file size is necessarily
|
|
smaller in every cases. In particular some best/worst case are
|
|
possible when an algorithm less efficient in general may end up
|
|
better on a particular image.
|
|
- Add basic support for cursors with a scale factor of 2 for HiDPI
|
|
(artwork to be updated).
|
|
- Foreground and background color icons, as well as color history will
|
|
now display out-of-gamut warning on indexed images for colors
|
|
outside of the palette, as well as on grayscale images, for non-gray
|
|
colors.
|
|
- Pack color picker and hexadecimal entry on same line in Color dock.
|
|
|
|
Usability:
|
|
|
|
- Attempting to transform locked layers or paint on them now results in
|
|
blinking around the status bar (where the warning message is displayed)
|
|
and around the toolbar where lock toggles are. The same applies to
|
|
attempting to move a selection where there is none — GIMP will blink
|
|
around the toolbar where the moving target (layer, selection, path)
|
|
is chosen.
|
|
- GIMP now allows selecting default export file type for new projects.
|
|
The choice is limited to PNG, JPEG, WebP, PSD, ORA, TIFF, BMP.
|
|
- Work around weird display of the item list in various drop down all
|
|
over GIMP (all GIMP classes based off GtkComboBox), which had empty
|
|
scrollable space at the top.
|
|
- GimpSpinScale widget now has an optional feature to constrain the
|
|
value to integer when dragging with a pointer (even if the scale
|
|
allows for fractional numbers), set with new function
|
|
gimp_spin_scale_set_constrain_drag().
|
|
This is useful for settings where fractional numbers are technically
|
|
possible, yet most common use case are with integers (such as pixel
|
|
sizes, angles in degrees, etc.) so you want the easy interface to be
|
|
constrained. Fractional numbers are still settable, for instance by
|
|
keyboard edit; and arrow incrementation won't drop fraction parts.
|
|
This is currently only activated for brush options in paint tools.
|
|
|
|
Tools:
|
|
|
|
- In scale tool, scale around center even when using numeric input.
|
|
- New algorithm in the Bucket Fill tool when selecting the affected
|
|
area "Fill by line art detection", based off the G'Mic algorithm for
|
|
"smart colorization": https://hal.archives-ouvertes.fr/hal-01891876
|
|
In a few words, it identifies painted pixels (either based on
|
|
grayscale or opacity values) and tries to close line arts to allow
|
|
filling even with not perfectly closed zones; the second step of the
|
|
algorithm will flood the colors under line art pixels to prevent
|
|
"holes" in the filling.
|
|
It is possible to control a max size (in pixels) for the flooding,
|
|
as well as max length of closing segments and splines.
|
|
- The Bucket Fill tool got new interaction allowing to hold the click
|
|
and move the mouse to fill based on several seed zones (for "Fill
|
|
by line art detection" as well as "Fill similar colors"). You can
|
|
now cancel the fill in progress with right click as in other tools.
|
|
- The Bucket Fill tool now allows color picking with ctrl-click, same
|
|
as every painting tool. It will pick either the foreground or
|
|
background color depending on the selected Fill Type. The ctrl-alt
|
|
modifier combination is also possible to pick the non-Fill Type
|
|
color.
|
|
- In the Bucket Fill tool, the Alt modifier will now switch to
|
|
"FG color fill" when "Pattern fill" was set (instead of doing
|
|
nothing).
|
|
- In the Unified Transform tool, default to preserving aspect ratio
|
|
when scaling up or down.
|
|
- In the Healing tool, "Sample merged" now also work for the target
|
|
pixels, allowing to draw in empty layers.
|
|
- Selection by color is now parallelized, hence improving speed of the
|
|
Select by Color tool (and any other processing which may share this
|
|
piece of code now or in the future).
|
|
- Add "Constrain handles" and "Around center" options to the
|
|
perspective-transform tool's GUI, which are similar to the
|
|
corresponding options of the unified-transform tool.
|
|
- Improve color picking on indexed image to always select an indexed
|
|
color corresponding to the picked pixel in the colormap.
|
|
|
|
Plug-ins:
|
|
|
|
- file-pdf-save GUI now clearly indicates the order the layers will be
|
|
used to make multi-page PDFs.
|
|
- Add DDS loading/exporting plug-in originally developed by Shawn Kirst
|
|
and Arne Reuter.
|
|
- Rename the Guillotine plug-in to Slice Using Guides.
|
|
- Add a new option saving a color profile when exporting PNG, JPEG, TIFF.
|
|
Always save it when exporting to PSD.
|
|
- Remove the "Advanced" expanders from the PNG and TIFF export dialogs.
|
|
- Full rewrite of the Spyrogimp plug-in with much more options and
|
|
better interaction.
|
|
- Indexed TIFF with alpha channel now supported.
|
|
|
|
Filters:
|
|
|
|
- Add on-canvas GUI (simple lines) for circular, linear, and zoom motion
|
|
blur.
|
|
|
|
Help:
|
|
|
|
- Link to the bugtracker directly from the Help menu, also link to the
|
|
wiki and the roadmap. Remove the link to currently disabled
|
|
registry.gimp.org.
|
|
|
|
Installers:
|
|
|
|
- Windows: proper fix for libthai to stop GIMP from crashing in the
|
|
Thai locale.
|
|
|
|
Translations:
|
|
|
|
- Czech, Danish, French, Italian, Japanese, Marathi, Polish, Russian,
|
|
Spanish, Swedish, Ukrainian.
|
|
|
|
Build:
|
|
|
|
- Bumping GTK+ dependency to the micro update GTK+ 2.24.32 to handle
|
|
several bugs on Windows (broken shortcuts on non-latin layouts and
|
|
broken vector icons).
|
|
|
|
Overview of Changes from GIMP 2.10.6 to GIMP 2.10.8
|
|
===================================================
|
|
|
|
Core:
|
|
|
|
- Use adaptive chunk size in GimpProjection when rendering the
|
|
projection asynchronously, rather than using a fixed chunk size.
|
|
This provides a better trade-off between throughput and
|
|
responsiveness dynamically, based on how fast the processing is.
|
|
- Add xyY color space to the color spaces for sampling colors.
|
|
|
|
Tools:
|
|
|
|
- In all selection tools, show error on attempt to
|
|
subtract-from/intersect-with empty selection.
|
|
- Fix text along path not working with vertical text.
|
|
- Fix Text tool's frame position when undoing a move operation.
|
|
- Streamline Text tool's drawing blocking/unblocking logic.
|
|
- When moving a text layer using the text tool (through alt+drag),
|
|
don't change the layer's box mode to "fixed", which is unnecessary,
|
|
since the layer's size isn't affected.
|
|
- Transform and deformation operations now maintain color for fully
|
|
transparent pixels, making unerase and curves manipulation of alpha
|
|
channel more reliable.
|
|
- All transform tools now apply changes when you save or export/overwrite
|
|
an image without pressing Enter first to confirm changes.
|
|
- Heal, Dodge/Burn, Smudge, and Convolve tools now adjust the processed
|
|
buffer and mask_buffer regions according to the changes made to the
|
|
application region, as calculated by intersecting it with the
|
|
drawable and mask extents. This fixes wrong application position
|
|
when painting on a drawable whose origin is above/to the left of the
|
|
image's origin, and there's a selection active.
|
|
- New type of gradient interpolation called 'Step' for making multi-color
|
|
hard-edge gradient fills.
|
|
|
|
Plug-ins:
|
|
|
|
- Port all plug-ins to the new iterator API in GEGL.
|
|
- Improve automatic detection of HEIC/HEIF files.
|
|
- Improve RawTherapee discovery by looking up registry key (should
|
|
become useful with RawTherapee 5.5 and more).
|
|
|
|
Usability and UI:
|
|
|
|
- Compatibility information in the Save dialog is now more understandable.
|
|
The minimum GIMP version for the XCF file is always written down when it
|
|
is GIMP 2.8 or over. The list of features warranting the minimum version
|
|
is now listed in an expander container rather than as tooltip, which
|
|
makes it more discoverable. The warning on compression is now displayed
|
|
as its own text under the checkbox and not as additional text to the
|
|
minimum GIMP version label.
|
|
- In all themes, fix the color of selected text, while editing a tree-view's
|
|
item text (such as when renaming a layer), by overriding tree-view
|
|
specific styling with the global text-entry style, for nested text entries
|
|
inside tree-views. The text would previously use the same color as the
|
|
selection background, making it unreadable.
|
|
- Add option in the Windows menu to hide the image tab bar.
|
|
|
|
CLI:
|
|
|
|
- New self-explanatory --enable-win32-debug-console CLI option
|
|
|
|
Debugging:
|
|
|
|
- New GimpBacktrace API provides an interface for creating and
|
|
traversing multi-threaded backtraces, as well as querying symbol
|
|
information. Backends are available for Linux and Windows.
|
|
- Performance log recording now available in the Dashboard dock.
|
|
The log contains a series of samples of the dashboard variables,
|
|
as well as the full program backtrace, when available. As such,
|
|
it essentially acts as a built-in profiler, which allows us to
|
|
correlate program execution with the information available
|
|
through the Dashboard.
|
|
- New performance-log-expand.py tool decodes a delta-encoded
|
|
performance log by expanding the deltas, producing a log where
|
|
each sample (and other relevant elements) contain complete
|
|
information. The structure of expanded logs is identical to that
|
|
of delta-encoded logs, the expanded log simply has no deltas.
|
|
- New performance-log-resolve.py tool resolves symbol information
|
|
in backtraces. The logs produced by GIMP only specify the program
|
|
counter at each stack frame, providing an address-map to map
|
|
program-counter addresses to actual symbols separately. This tool
|
|
looks up each program-counter address in the address map,
|
|
incorporating the relevant symbol information directly into the
|
|
backtrace.
|
|
- New performance-log-deduce.py tool that statistically deduces the
|
|
correct thread states based on backtrace address frequency, fixing
|
|
local inaccuracies.
|
|
- New performance-log-viewer.py tool that is a viewer for GIMP
|
|
performance logs, with a sample-selection area at the top and an
|
|
information area at the bottom. The sample-selection area visualizes
|
|
the sampled variables and markers using a simultaneous set of plots,
|
|
and displays the currently selected samples. The information area
|
|
shows global information stored in the log, as well as information
|
|
specific to the currently selected samples, including variable listing
|
|
and statistics, full backtrace, and profile/call-graph information.
|
|
|
|
Translations:
|
|
|
|
- Updated translations: Danish, Dutch, Finnish, German, Hungarian,
|
|
Italian, Marathi, Polish, Portuguese (Brazil), Russian, Spanish,
|
|
Swedish, Ukrainian.
|
|
|
|
|
|
Overview of Changes from GIMP 2.10.4 to GIMP 2.10.6
|
|
===================================================
|
|
|
|
Core:
|
|
|
|
- Render drawable previews asynchronously.
|
|
- Merge the file view filter and file format lists in GimpFileDialog.
|
|
The presence of 2 lists was very confusing.
|
|
- DLL search priority is now updated before running a plug-in on
|
|
Windows, depending on the executable bitness. This gets rid of one
|
|
of the last remnant of DLL hell in GIMP, which was when running
|
|
32-bit plug-ins from a 64-bit build of GIMP.
|
|
|
|
Filters:
|
|
|
|
- New "Little Planet" (gegl:stereographic-projection) filter.
|
|
- New "Long Shadow" (gegl:long-shadow) filter.
|
|
|
|
Tools:
|
|
|
|
- Halt the Measure tool after straightening.
|
|
- Add an "orientation" option to the measure tool, corresponding to
|
|
the "orientation" property of GimpToolCompass (i.e., it controls the
|
|
orientation against which the angle is measured, when not in 3-
|
|
point mode.) The orientation is "auto" by default, so that the
|
|
angle is always <= 45 deg. Note that the "orientation" option
|
|
affects the tool's "straighten" function, so that the layer is
|
|
rotated toward the current orientation.
|
|
- Text layers can now represent vertical texts, with 4 variants:
|
|
left-to-right and right-to-left lines, and forcing all characters to
|
|
be upright or following Unicode's vertical orientation property.
|
|
See also:
|
|
* https://www.unicode.org/reports/tr50/
|
|
* http://www.unicode.org/Public/UCD/latest/ucd/VerticalOrientation.txt
|
|
|
|
User Interface:
|
|
|
|
- The Dashboard dockable dialog now has an "async" field to the
|
|
dashboard's "misc" group, showing the number of async operations
|
|
currently in the "running" state.
|
|
- New Preferences option to enable/disable layer-group previews, since
|
|
these can get quite time-expensive.
|
|
|
|
Translations:
|
|
|
|
- New language: Marathi
|
|
- 12 translations were updated: Brazilian Portuguese, Dutch, French,
|
|
German, Greek, Italian, Latvian, Polish, Romanian, Slovenian,
|
|
Spanish, Swedish.
|
|
|
|
Build:
|
|
|
|
- Add --with-win32-32bit-dll-folder configuration option to override
|
|
the folder where 32-bit versions of DLL will be installed (default:
|
|
32/bin/).
|
|
- Install all plug-ins in their own directories. Unlike on master,
|
|
this is not mandatory to do so, but it would protect our core
|
|
plug-ins against any DLL installed directly under plug-ins/ by
|
|
third-party plug-ins (cf. Windows DLL hell).
|
|
|
|
Overview of Changes from GIMP 2.10.2 to GIMP 2.10.4
|
|
===================================================
|
|
|
|
Core:
|
|
|
|
- Remove gimp_display_shell_draw_background() and all clipping hacks
|
|
for drawing the canvas background. This optimizes away one entire
|
|
step of drawing of image size, for each expose.
|
|
- Font loading does not block startup anymore. Only consequence is
|
|
that the Text tool may not be usable immediately if fonts are not
|
|
fully loaded yet (and will output an appropriate error if you do
|
|
so). All non-text related activities can be performed right away.
|
|
- Change of the URL from bugzilla to gitlab where appropriate.
|
|
- New tool option manager to better keep track of user context and
|
|
paint options in a consistent manner.
|
|
|
|
User Interface:
|
|
|
|
- The Dashboard dockable dialog now has a 'Memory' group that shows
|
|
memory-usage information: the currently used memory size, the
|
|
available physical memory size, and the total physical memory
|
|
size. It can also show the tile-cache size, for comparison
|
|
against the other memory stats. Note that the upper-bound of the
|
|
meter is the physical memory size, so the memory usage may be over
|
|
100% when GIMP uses the swap.
|
|
- The Dashboard dockable dialog now has "read" and "written" fields in
|
|
the dashboard swap group, which report the total amount of data
|
|
read-from/written-to the tile swap, respetively. Additionally, the
|
|
swap busy indicator (used as the meter's LED) has been improved,
|
|
so that it's active whenever data has been read-from/written-to
|
|
the swap during the last sampling interval, rather than at the
|
|
point of sampling.
|
|
- Fonts can now be tagged. The user interface is the same as for
|
|
brushes, patterns etc.
|
|
- Some icons fixed: larger spacing between broken chains and
|
|
gimp-tool-ellipse-select made symmetrical.
|
|
|
|
Usability:
|
|
|
|
- When a plug-in cannot be applied to an image because of mismatch
|
|
in image types (e.g. layer has no alpha or image is greyscale),
|
|
GIMP now displays a message listing supported image types for this
|
|
plug-in.
|
|
|
|
Tools:
|
|
|
|
- The Measurement tool now has an "Auto straighten" option allowing
|
|
to rotate the active drawable (layer, channel…) so that the
|
|
measurement line is used as horizon. As other transform tools, the
|
|
feature will work on linked drawables as well.
|
|
- The Smudge tool now paints correctly on images with a color
|
|
profile other than the GIMP's built-in one.
|
|
|
|
Build:
|
|
|
|
- Installer: set compatibility options to run Python plugins in
|
|
HiDPI-aware mode.
|
|
- Put back compatibility DLLs for really old plugins.
|
|
- Install binary tool `gimp-test-clipboard` on the system to allow
|
|
people to help us debug clipboard bugs.
|
|
- --enable-bundled-mypaint-brushes renamed
|
|
--enable-relocatable-bundle and also make WMF fonts looked up on
|
|
the runtime prefix of GIMP (instead of the build-time path) when
|
|
this build option was set.
|
|
|
|
Plug-ins:
|
|
|
|
- gimptool-2.0 binary now accepts source files with non-standard
|
|
extensions if it can try to guess appropriate language from the
|
|
compiler being used. It will also properly quote arguments for
|
|
shell usage.
|
|
- Run explicitly Python 2 as Python plug-in interpreter to prevent
|
|
breakage on systems where Python 3 is the default.
|
|
- raw_input()'s argument in Python console is now optional, and
|
|
input() support has been added.
|
|
|
|
File Formats:
|
|
|
|
- The PSD loader now provides an option to load "merged",
|
|
pre-composited version of the images that becomes available when a
|
|
PSD file was saved with "Maximize Compatibility" option enabled in
|
|
Photoshop. This is useful when loading PSD files that use features
|
|
that GIMP doesn't currently support, and therefore can't render
|
|
correctly, such as adjustment layers. When loading the merged
|
|
image version, we avoid loading certain additional data from the
|
|
file, such as channels, paths, and guides, while still loading
|
|
metadata. This option is currently exposed as an additional file
|
|
type ("Photoshop image (merged)"), which has to be explicitly
|
|
selected from the file-type list when opening the image.
|
|
- Embedding GIMP's built-in sRGB color profile to exported files is
|
|
now optional. The default choice can be set in the Preferences
|
|
dialog.
|
|
|
|
Translations:
|
|
|
|
- Updated translations: Catalan, Czech, Danish, Dutch, Finnish,
|
|
Greek, Hungarian, Italian, Latvian, Polish, Romanian, Russian,
|
|
Spanish, Swedish, Ukrainian.
|
|
|
|
|
|
Overview of Changes from GIMP 2.10.0 to GIMP 2.10.2
|
|
===================================================
|
|
|
|
Core:
|
|
|
|
- Discard fonts which fail to load and popup an info dialog to allow
|
|
people debug their fonts.
|
|
- New API to suppress updates in UI until plug-ins are done
|
|
introducing changes.
|
|
- New API to calculate histograms in separate threads, with possible further
|
|
extension to handle similar cases elsewhere in GIMP.
|
|
- Tool options are now properly saved and reloaded per-device at
|
|
startup.
|
|
|
|
Plug-ins:
|
|
|
|
- New plug-in for importing and exporting HEIF images.
|
|
- Enable visibility of rasterized vector layer from PSD.
|
|
- Single-window screenshots in Windows fixed to correctly snap a
|
|
window even when it is partly off-screen or covered by another
|
|
window or when display scaling is not set to 100%.
|
|
|
|
Filters:
|
|
|
|
- New Spherize filter to wrap an image around a spherical cap
|
|
- New Recursive Transform filter to create Droste effect.
|
|
|
|
Usability:
|
|
|
|
- Warn users, when alpha-only painting has no effect. E.g. when target
|
|
drawable doesn't have an alpha channel, or the alpha channel is locked.
|
|
- Make the splash texts dynamic, so they are larger on larger splashes.
|
|
- Mention pressing Enter to complete Foreground selection in the status bar.
|
|
- Make sure that clicking outside any selection prevents Rectangle Select
|
|
and Ellipse Select tools from creating empty selections.
|
|
- Improve mouse wheel zooming behavior to keep the same point
|
|
centered under the pointer even if the image is completely visible
|
|
in the canvas.
|
|
- Add "View -> Center Image in Window" (Shift+J) as a quick way to
|
|
center the image at any zoom level.
|
|
|
|
Translations:
|
|
|
|
- Updated translations: Catalan, Danish, Dutch, French, German, Greek,
|
|
Hungarian, Icelandic, Italian, Latvian, Polish, Russian, Spanish,
|
|
Swedish, Ukrainian.
|
|
- New translation of Windows installer: Chinese (Taiwan)
|
|
|
|
Build:
|
|
|
|
- Add a --with-bug-report-url configure option allowing packagers to
|
|
set the address of their own bug tracker. This address will be the
|
|
one opened by the debug dialog for reporting bugs.
|
|
- Add a flatpak manifest for the gtk3-port branch.
|
|
- Remove the possibility to disable script-fu.
|
|
- Add a --with-icc-directory configure option to customize the color
|
|
profile directory. By default, it is set to the common path
|
|
/usr/share/color/icc.
|
|
|
|
Documentation:
|
|
|
|
- Updating the description of the XCF format "devel-docs/xcf.txt", for
|
|
third-party readers wishing to support GIMP 2.10 XCF files.
|
|
- Add documentation skeletons for all enums in libgimpbase/, there is
|
|
much room for improvement.
|