1.76.0:
Modify infrastructure to fix outstanding security issues. By default,
you can no longer create temp directories and temp files whose
names are known to the compiler. Also, prevent "system" calls,
which were used for image display and gnuplot.
Replaced remaining sprintf() with snprintf() in prog tests.
Added non-transcoding functions for generating pdf from jpeg pixacomp
Add control of jpeg quality from pixWriteMem() and pixWriteStream()
Fixed getFilenamesInDirectory() to properly identify directories
Prevent size overflow in calloc for kernel; cleaned it up fpix and dpix
bmp reading now accepts negative height
Simplified splitimage2pdf; it no longer uses ps2pdf
Remove name-mangling WRITE_AS_NAMED compile option.
Removed 2 deprecated write functions.
Added these regression tests:
locminmax_reg, speckle_reg, watershed_reg,
1.3.29:
Security Fixes:
GraphicsMagick is now participating in Google's oss-fuzz project due to the contributions and assistance of Alex Gaynor. Since February 4 2018, 180 issues have been opened by oss-fuzz and 173 of those issues have been resolved. The issues list is available at https://bugs.chromium.org/p/oss-fuzz/issues/list under search term "graphicsmagick". Issues are available for anyone to view and duplicate if they have been in "Verified" status for 30 days, or if they have been in "New" status for 90 days. There are too many fixes to list here. Please consult the GraphicsMagick ChangeLog file, Mercurial repository commit log, and the oss-fuzz issues list for details.
JNG: Require that the embedded JPEG image have the same dimensions as the JNG image as provided by JHDR. Avoids a heap write overflow.
MNG: Arbitrarily limit the number of loops which may be requested by the MNG LOOP chunk to 512 loops, and provide the '-define mng:maximum-loops=value' option in case the user wants to change the limit. This fixes a denial of service caused by large LOOP specifications.
Bug fixes:
Many oss-fuzz fixes are bug fixes.
DICOM: Pre/post rescale functions are temporarily disabled (until the implementation is fixed).
JPEG: Fix regression in last release in which reading some JPEG files produces the error "Improper call to JPEG library in state 201".
ICON: Some DIB-based Windows ICON files were reported as corrupt to an unexpectedly missing opacity mask image.
In-memory Blob I/O: Don't implicitly increase the allocation size due to seek offsets.
MNG: Detect and handle failure to allocate global PLTE. Fix divide by zero.
DrawGetStrokeDashArray(): Check for failure to allocate memory.
BlobToImage(): Now produces useful exception reports to cover the cases where 'magick' was not set and the file format could not be deduced from its header.
API Updates:
Wand API: Added MagickIsPaletteImage(), MagickIsOpaqueImage(), MagickIsMonochromeImage(), MagickIsGrayImage(), MagickHasColormap() based on contributions by Troy Patteson.
New structure ImageExtra added and Image 'clip_mask' member is replaced by 'extra' which points to private ImageExtra allocation. The ImageGetClipMask() function now provides access to the clip mask image.
New structure DrawInfoExtra and DrawInfo 'clip_path' is replaced by 'extra' which points to private DrawInfoExtra allocation. The DrawInfoGetClipPath() function now provides access to the clip path.
New core library functions: GetImageCompositeMask(), CompositeMaskImage(), CompositePathImage(), SetImageCompositeMask(), ImageGetClipMask(), ImageGetCompositeMask(), DrawInfoGetClipPath(), DrawInfoGetCompositePath()
Deprecated core library functions: RegisterStaticModules(), UnregisterStaticModules().
Feature improvements:
Static modules (in static library or shared library without dynamically loadable modules) are now lazy-loaded using the same external interface as the lazy-loader for dynamic modules. This results in more similarity between the builds and reduces the fixed initialization overhead by only initializing the modules which are used.
SVG: The quality of SVG support has been significantly improved due to the efforts of Greg Wolfe.
FreeType/TTF rendering: Rendering fixes for opacity.
CHANGES BETWEEN 2.9 and 2.9.1
I. IMPORTANT BUG FIXES
- Type 1 fonts containing flex features were not rendered
correctly (bug introduced in version 2.9).
- CVE-2018-6942: Older FreeType versions can crash with certain
malformed variation fonts.
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942
II. MISCELLANEOUS
- Bug fix: Multiple calls to `FT_Get_MM_Var' returned garbage.
- The base extensions `ftlcdfil' and `ftfntfmt' are now part of
the base module (and thus no longer configurable in file
`modules.cfg').
- Emboldening of bitmaps didn't work correctly sometimes, showing
various artifacts (bug introduced in version 2.8.1).
- Use of the `freetype-config' script to get compilation and
linking options is deprecated since it doesn't support
cross-compiling, among other deficiencies. Instead, you should
use the `pkg-config' interface.
The `configure' script no longer installs `freetype-config' by
default. For backwards compatibility, a new configure option
`--enable-freetype-config' is provided that reverts this
decision.
- The auto-hinter script ranges have been updated for Unicode 11.
No support for new scripts have been added, however, with the
exception of Georgian Mtavruli.
- Support for cmake has been improved.
- The next release will remove support for Position Independent
Code as needed by systems that prohibit automatic address
fixups, such as BREW. [Compilation with modern compilers that
use flags like `-fPIC' or `-fPIE' is not affected.]
Upstream changes (from NEWS):
== Ruby-GNOME2 3.2.5: 2018-05-02
This is a bug fix release of 3.2.4.
=== Changes
==== Document
* Fixes
* Fixed typos.
[GitHub#1158][Patch by kojix2]
[GitHub#1160][Patch by kojix2]
==== Ruby/GLib2
* Fixes
* Fixed a GC related crash bug.
[GitHub#1162][Reported by Izumi Tsutsui]
==== Ruby/GObjectIntrospection
* Improvements
* Disabled NULL check for GObject Introspection < 1.42. Because
GObject Introspection < 1.42 doesn't support "(nullable)"
annotation yet.
==== Ruby/GdkPixbuf2
* Improvements
* (({GdkPixbuf::Pixbuf#composite})): Suppressed wrong warning.
[GitHub#1156][Reported by Chaistrin]
[GitHub#1157][Patch by cedlemo]
* Fixes
* Added a missing white space into message.
[GitHub#1155][Reported by Robert A. Heiler]
* (({GdkPixbuf::Pixbuf#composite})): Fixed a bug that width and
height are ignored.
[Patch by cedlemo]
==== Ruby/GTK3
* Improvements
* (({Gtk::TextBuffer#initialize})): Accepted "property-name" form.
[GitHub#1161][Reported by kojix2]
==== Ruby/Poppler
* Improvements
* Added a workaround for poppler-glib 0.63 bug.
[GitHub#1159][Reported by HIGUCHI Daisuke]
=== Thanks
* Robert A. Heiler
* Chaistrin
* cedlemo
* kojix2
* Izumi Tsutsui
* HIGUCHI Daisuke
Changelog:
wed, 07 Mar 2018 17:49:52 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.25.1
* Fix compilation issues when using CFLAGS=-m64 on some gcc versions
* Re-render current image when toggle_fixed_geometry is input
Sun, 04 Mar 2018 08:53:50 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.25
* Add --version-sort option to enable natural sorting of file and directory
names. This requires a libc with strverscmp support, which is a
non-POSIX GNU extension. Use the new build flag `verscmp=0` to disable
this feature on systems which do not ship strverscmp
(patch by ulteq)
* Allow arbitrary X11 colors as -B/--image-bg argument (patch by ulteq)
* Improve --image-bg support and transparency handling in --bg-* mode
* Respect --geometry settings in --bg-fill mode
* Add keybinding toggle_auto_zoom (default "Z") to toggle --auto-zoom
* Fix filelists specified by -f/--filelist not being reloaded when using
--reload
Mon, 26 Feb 2018 21:41:38 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.24
* Improve performance when using --{max,min}-dimension in slideshow mode
(patch by ulteq)
* Fix crash when using %m format specifier in slideshow mode
(introduced in feh 2.23.1)
Mon, 12 Feb 2018 22:11:55 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.23.2
* Fix support for nested quotes in .confeg/feh/themes
Wed, 31 Jan 2018 17:38:25 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.23.1
* The Makefile no longer honors CPPFLAGS and instead consistently uses
CFLAGS for user-provided include paths
* Fix %u format specifier in multiwindow and list modes (patch by ulteq)
* Minor performance improvements (patches by ulteq)
* Stability improvements when using --magick-timeout (patch by ulteq)
Thu, 28 Dec 2017 19:26:29 +0100 Daniel Friesel <derf+feh@finalrewind.org>
* Release v2.23
* Fix broken thumbnail/index windows when using --scale-down
* Use Imlib2 in-memory image cache (default cache size: 4MiB). This allows
for significant performance improvements especially in small slideshows
* Add --cache-size option to set Imlib2 image cache size
Changelog:
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0
=======================================================
Core:
- CLI option --show-playground visible in --help.
- Sample point dockable now works with more than 4 sample points.
- Various warnings removed, multi-threading officially not
"experimental" anymore…
- Various fill and fade operations now use the current paint composite
mode, allowing for instance filling to paint over transparent areas.
- Default layer and paint modes are now Normal (instead of Legacy).
- Be smarter about layer modes for new layers.
- Get rid of the remaining places that were using the NORMAL_LEGACY
mode by default (painting, some more).
- Improve painting speed even more by even more evil C++.
- Flipping drawables is much faster because it's now working
tile-by-tile.
- Gradient rendering is now much faster, using a cache.
Plug-ins:
- Ripple plugin removed, compat PDB-API "plug-in-ripple" added
instead.
PDB:
- New procedure: gimp-item-transform-translate.
- Make gimp-item-transform-* transform linked items too.
- Deprecate gimp-color-balance and gimp-layer-translate.
Assets / Resources:
- New "Fun" category for brushes (moving the "Pepper" there, which
also gets improved resolution), and adding Wilber and GEGL brushes.
- "Structure" brush obsoleted.
- 5 new and more serious brushes.
Translations:
- 6 translations were updated: Catalan, Danish, Finnish, Korean,
Polish, Swedish.
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0 RC2
===========================================================
Core:
- Symmetries are now preserved in XCF files (saved as image parasites).
- New runtime option --show-debug-menu in order to make the File >
Debug menu visible.
- Do not show invisible actions in search dialog.
- Do not dither image mask and channels for imported images.
- Various optimizations for painting and display (WIP), including
parallelized painting code.
- New "Misc" group to the Dashboard dock, with currently only a
"Mipmapped" field showing the total size of processed mipmapped
data.
- Plug-ins debugging on crashes through --stack-trace-mode CLI option
improved to handle more case.
- Fix selection -> channel -> selection roundtrips by never doing
any gamma conversion when converting between an image's selection,
channels, masks. Also, make all channels linear in all images with
>8bit.
Libgimp:
- New group "drawable_edit" which contains all functions from "edit"
that are not cut/copy/paste. The new functions have much less
arguments and take them from the context instead. The respective
functions in "edit" have been deprecated.
- New functions in "context" to configure aspects of gradient
drawing, and to set the built-in gradients (the new gradient
function in "drawable_edit" doesn't have a parameter for the
gradient type any longer).
User interface:
- Lighter and Darker themes removed for now, Light and Dark themes
rewritten from scratch to get rid of various usability issues and
glitches. Only Gray theme from previous set kept as-is.
- New GimpToolGyroscope on-canvas control, currently used for
the Panorama Projection filter. The widget provides on-canvas
interaction for 3D rotation (yaw, pitch, roll).
Configurability:
- In Preferences > Dialog Defaults, new section "Filter Dialogs"
created to customize various common features of filters, such as
recent settings and advanced color options.
- Do not default to last used filter settings, but allow this behavior
in Preferences > Dialog Defaults, with checkbox "Default to the last
used settings".
Tools:
- Color used in the Smudge tool is now added to the color history.
- "Blend" tool renamed to much more consistent "Gradient" tool.
Also it can now work in linear RGB matching capabilities CSS/SVG
specification without gamma-errors in color blending and CIE Lab
which in addition keeps a perceptual graylevel.
Assets / Resources:
- Adding 4K UHD in document templates (and fixing 4K DCI).
Building:
- New --enable-bundled-mypaint-brushes option in configure to decide
whether to use the configure-time installation path of MyPaint
brushes, or use a path relative to GIMP installation prefix
(typically for bundled binaries, such as on Windows or macOS).
- Detect freetype2 using pkg-config (`freetype-config` is on its way
out in various distributions apparently).
- Appdata now installed to $PREFIX/share/metainfo/
Translations:
- 8 translations were updated: Arabic, Catalan, Chinese, French, Italian,
Polish, Russian, Swedish.
Overview of Changes from GIMP 2.9.8 to GIMP 2.10.0 RC1
======================================================
Core:
- New dashboard dockable: shows the current GEGL cache and swap sizes
and CPU usage and active time, and their recent history. It has
options to control the update rate and history duration of the data,
and an option to warn (by raising/blinking the dialog) when the swap
size approaches its limit.
- Make the selection boundary detection the same as 2.8.
- The environment variable GIMP_DEBUG can now be set to "list-all" to
display available debug domains. Non-recognized flags will also
trigger the debug flag list output.
- Improve migration from 2.8 to 2.10 by recursively migrating
configuration files (up to 5 levels, to protect from recursive
symbolic links).
- Mark legacy plug-ins and scripts in menus.
- Enable "save-tool-options" and "save-device-status" by default,
it's the expected behavior these days.
- GIMP doesn't warn any more for unknown darktable XMP metadata. We now
register the corresponding namespace.
- Adding settings for metadata export handling in "Image Import &
Export" page of Preferences. By default, the settings are checked,
but you can uncheck them (in particular since metadata can often
contain a lot of sensitive information).
- Splash image now scaled down to maximum 1/2 of the screen area. This
will allow to ship a big splash image which will be visible on all
type of screens, whichever low or high resolution. Vector splash
images are scaled both up or down to have them always at ideal size.
- Brightness-Contrast, Curves, Levels and Threshold are now available
in "Repeat last" history.
- Improve action history to not show newly excluded actions (which
were already in our history from before the exclusion).
- Use GEGL for transform-tools preview, allowing faster and more
accurate previews.
- Re-arrange color models in the Color dock (WIP).
- New debug tool and infrastructure to handle WARNING and CRITICAL
errors, as well as fatal errors (crashes), raising a pop-up with all
version information on GIMP and its main dependencies, as well as
the error message and backtraces, and encouraging people to make bug
reports.
- Support layer masks on layer groups.
- GIMP now attempts to backup unsaved images when it crashes. Then at
next startup, it will suggest to recover the salvaged images. Image
recovery is not 100% guaranteed.
- New gimp_spawn_async() function uses vfork() to help avoid hanging
during a fork process, currently used for plug-ins.
- Dock color picker is now color-managed on macOS.
Libgimp:
- New gimp_export_exif(), gimp_export_xmp() and gimp_export_iptc()
functions returning the creator choice regarding default handling
for metadata export (as set in the Preferences).
- GIMP Protocol version incremented.
- New gimp_get_pdb_status() to return the status of the last PDB
call. This is needed for plug-ins which depend on other plug-ins'
procedures. If for instance, a second-level plug-in is interrupted
interactively, we don't want to process this as an error but as a
cancellation.
- New gimp_stack_trace_available(), gimp_stack_trace_print() and
gimp_stack_trace_query() for debugging.
- Use gegl:distance-transform in gimp_edit_blend() implementation
making it much faster for all GRADIENT_SHAPEBURST_* gradient types.
Legacy gimp:shapeburst operation has been deleted.
- New gimp_context_get_distance_metric() and
gimp_context_set_distance_metric() for distance metric used in
gimp_edit_blend() (and future usage).
GUI and Usability:
- New icons: "gimp-attach", "gimp-color-space-linear",
"gimp-color-space-perceptual", "gimp-color-temperature",
"gimp-dashboard", "gimp-detach", "gimp-tool-desaturate",
"gimp-tool-exposure", "gimp-tool-shadows-highlights".
- Switching between linear and perceptual (gamma-corrected) spaces
in the Histogram dialog is easier now: two buttons instead of one
two-way button where current state was difficult to understand.
- Shorten color channel labels in the color frame (color picker tool,
sample point editor…) with conventional 1 or 2-letter abbreviations,
and split coordinates on 2 lines.
- We now switch to "Huge" icons by default when the display pixel
density is over 250 PPI (used to be 300 PPI).
- Improve action history sorting: items climb up the list faster,
while top items retain their relative position longer.
- Extend action search "initialism": Extend initialism-based search
(e.g.: "gb" for "Gaussian Blur"), by matching arbitrarily-long
initialisms, and by allowing partial matches (with lesser priority).
- Values in the GimpNumberPairEntry widgets can now be cleared by clicking
an icon.
- Transform Grid controller is now available for custom UIs of GEGL
operations (currently used for Recursive Transform op).
- New GimpHighlightableButton widget is used to draw attention to buttons
in certain cases. Currently used for anchoring and removing floating
selections.
- Composite modes were renamed to be more descriptive, as follows:
Source Over => Union
Source Atop => Clip to Backdrop
Destination Atop => Clip to Layer
Source In => Intersection
Configurability:
- Wilber logo in the toolbox can now be disabled via Preferences
(the Toolbox page).
Tools:
- "Link brush size with canvas zoom" paint option becomes "Lock brush
to view" to make a brush invariant in display space whichever
scaling, rotation, and reflection.
- Blend tool now displays the line length (in current shell unit and
with ideal digit accuracy) and angle in the status bar.
- Constrain line angles in display space: all tools which have a line
constraint feature (for instance blend tool, paint tools in line
mode, etc.) will now do so relatively to the display, allowing you
to rotate the canvas in order to constrain to any arbitrary angle.
- Levels and Curves can now work on linear light data, the toggles are
at the top of respective dialogs, right next to linear/log toggles
for the histogram.
- Blend tool now has a distance metric option to determine how
distances are computed (Euclidean, Manhattan or Chebyshev
distances).
Filters:
- New GEGL-based Shadows-Highlights filter now available in the Colors
menu. The implementation is based on the code from darktable.
Plug-ins:
- Screenshot with the generic Freedesktop API has been implemented. It
is meant to replace all desktop environment specific APIs eventually
but needs to get reasonable features first. Therefore currently
GNOME/KDE and X11 implementations still have priority.
- qbist ported to GEGL and float.
- Colors for the standard output and standard error texts in the
Python console are now themeable, mapping respectively to normal
text and insensitive text colors for the "python-fu-console" widget.
We updated the default colors a bit for our themes. If this is not
good enough (for instance, if one has a specific type of color
blindness), at least it is now possible to create a custom theme
adapted to one's needs.
- PSD export now happens with progress bar update for feedback.
- Win32 Screenshot improved to handle hardware-rendered software and
multi-monitor displays.
File formats:
- Fix various vulnerabilities in file plug-ins: GBR (CVE-2017-17784),
PSP (CVE-2017-17787 and CVE-2017-17789), TGA (CVE-2017-17786) and
FLI (CVE-2017-17785).
- Fix WebP export under Windows.
- No more max dimension limitation for X cursors. We still warn when
cursor size is over a max limit for X bitmap cursors, but we don't
clamp anymore on export.
- JPEG, PNG, TIFF and WebP export plug-ins updated to honor creator's
default choice regarding metadata handling.
- Fix GIH brushes using different-sized layers.
- RGBE (Radiance HDR) format files can now be imported and exported.
- JPEG2000 loading now done via OpenJPEG library and supports any bit
depth (over 32-bit per channel will be clamped to 32-bit and
non-multiple of 8-bit will be promoted, for instance 12-bit will end
up as 16-bit per channel in GIMP). JPEG 2000 codestream also
supported and displays a dialog asking for the color space (whereas
JPEG 2000 image color space are auto-detected).
JPEG 2000 images or codestream in YCbCr, xvYCC and CMYK color spaces
are converted to sRGB images upon loading.
Building:
- poppler and poppler-data now hard dependencies. PDF import is
considered a granted feature nowadays and fallbacking to the
Postscript plug-in was bad experience.
- move PDB generation and sources to toplevel/pdb.
- New configure option `--enable-windows-installer` to generate the
necessary files for the installer translations during the build.
- Improve POTFILES generation for po-*/ directories.
- Require glib >= 2.54.2.
- New dependency to mypaint-brushes-1.0 for stable MyPaint brushes
available at installation.
- AppStream ID renamed from gimp.desktop to org.gimp.GIMP following
current convention.
- Require fontconfig >= 2.12.4. Lower versions are particularly a
problem on Win32, where many cache update failure were reported to
us, resulting in very slow startup and close-up (and not only the
first time, but every time).
Translations:
- Windows installer now localized with gettext.
- String freeze has started and GIMP received updates from:
Basque, Brazilian Portuguese, Catalan, Chinese (Taiwan), Danish,
Esperanto, French, German, Greek, Hungarian, Icelandic, Italian,
Japanese, Latvian, Polish, Russian, Serbian, Slovenian, Spanish,
Swedish, Turkish.
Overview of Changes from GIMP 2.9.6 to GIMP 2.9.8
=================================================
Core:
- The default brush is now "Hardness 050".
- Verbose version (command line: gimp -v) now displays C compiler
information.
- Transform tools don't commit identity transformation anymore.
- Manual language can now be selected amongst all installed manuals,
which is particularly interesting when no GIMP manuals are available
in your GUI language. This will be proposed by default when a manual
is not installed for the GUI language (alongside the possibility to
read online) and the choice can be edited in preferences.
- The statusbar now blinks on warnings and errors.
- Paste in Place, available for regular clipboard and named buffers,
allows pasting contents of either the clipboard a named buffer at the
exact coordinates it was copied from.
- Color Picker should now work on KDE/Wayland.
- Color Picker now reads values under cursor in local windows making
it work at least inside GIMP Windows on Wayland platforms with no
color-picking capabilities (for instance GNOME/Wayland) yet.
- OpenCL is now disabled by default. Depending on graphics cards and
drivers, OpenCL acceleration is often slower than multi-threaded
implementation, and can also sometimes be "glitchy".
- Now possible to open a locally-installed manual different from the
GUI localization. The manual language choice can be customized
through preferences when several manuals are installed. If no manual
language has been selected already and no manual for current GUI
localization is available, choice of help language will be proposed
at first call to the manual.
Configurability:
- Keybindings now possible for previous/next/top/bottom channel.
Usability:
- The spinscale widget now highlights vertical parts of the slider
section differently to hint that position of cursor above the widget
matters. When changing values in the lower step section, the pointer
will be wrapped around the screen so that you could continue adjusting
the value without interruptions.
- Canvas rotation and flip information is now visible in the status
bar (as angle value and flip icon). Clicking on these canvas status
will respectively raise the "Select Rotation Angle" dialog or unflip
the canvas.
- Use abbreviated versions for long layer mode names. In particular,
replace the "(legacy)" suffixes with "(l)" in the abbreviated
versions, still showing the unabbreviated names in the full list.
Tools:
- Blend tool now features on-canvas gradient editing: adding, shifting,
removing color stops, shifting midpoints and converting them to color
stops, assignging colors to color stops, changing blending type
for midpoints. Additional options: 'Instant mode' (active before you
start blending) to support the old workflow where you can't edit color
stops before applying the gradient fill, and 'Modify active gradient'
which allows changing user-writable gradients directly rather than
creating copies of them. Moreover, custom gradient is now saved
and restored across sessions.
- All transform tools: it makes no difference now whether a modifier is
pressed before of after mouse button press/release.
- Free Select tool selection can now be committed with double click as
well (only through Enter key before). This allows smoother workflows
on some setups, and in particular when no keyboard is available
(e.g. tablet-like computers).
- Layer group children now inherit the color tags of the parent by
default, unless specific color tags are assigned. Inherited color
tags show in a less saturated color than assigned ones.
Painting:
- When copying a generated brush, GIMP now copies its 'Spacing' property.
- Rename "Wheel" dynamics labels as "Wheel/Rotation". It turns out
that Wacom Art Pen and Airbrush pen use the same axis for barrel rotation
and wheel scrolling respectively. Therefore they already work in GIMP.
"Unhide" the feature with more obvious labels.
Color management:
- Use babl to convert between profiles if possible.
Display filters:
- New 'Clip Warning' display filter to show underexposed and overexposed
values. Target values below 0 and above 1.0, hence it only works on
16/32 bit per channel float images (such as EXR and TIFF).
- Display filters now operate in unbounded sRGB rather than in monitor
color space.
Plug-ins:
- Fix finding raw loaders on Windows/macOS.
- Screenshot for KDE/Wayland has been implemented (full-screen and
window screenshots only; rectangular area screenshots need
implementation on the KDE side).
- Screenshot can now add a delay between window pick/rectangular
area selection and the actual shot, but only in platforms supporting
the feature.
File formats:
- PSD:
- Fix mask position when opening/exporting.
- Fix active layer selection during loading.
- Fix potential group-layer naming conflict during loading.
- Fix missing some attributes loading empty layers.
- Fix reading files with deeply nested layer groups.
- Load and save layer group expanded state.
- Improve layer opacity loading/saving.
- PDF: password-protected files can now be imported.
- HGT: Digital Elevation Model data from NASA/NIMA can now be loaded,
both SRTM-1 (1 arc-second) and SRTM-3 (3 arc-seconds).
Filters:
- Update GEGL-based filter Wavelet Decompose:
- Add an option to keep the decomposition in a layer group.
- Add an option to add layer mask to each scales layers.
- Do not use 'New from visible' because it produces unexpected
results; replaced by succession of layer copy and merge down.
PDB:
- Add file-pdf-load2 API to load password-protected and/or multi-page
PDF files.
- Add file-hgt-load to load HGT files, with an argument to select between
SRTM-1 and SRTM-3 types.
Translations:
- Updated: Catalan, Croatian, Galician, German, Greek, Hungarian,
Icelandic, Indonesian, Italian, Polish, Russian, Spanish.
Building:
- Require LittleCMS >= 2.8.
- Initial docker-based build environment for GIMP now available.
- Warn against use of GCC 7.2 which has a bug breaking GIMP.
- An official flatpak stable package is now available on flathub.
Contributors:
Mario Blättermann, Hanno Boeck, Joao S O Bueno, Marco Ciampa,
Fran Dieguez, Piotr Drąg, Tobias Ellinghaus, Ell, Sveinn í Felli,
gogo, Luis Angel Gonzo, Anders Jonsson, Christian Kirbach,
Øyvind Kolås, Thomas Manni, Jordi Mas, Balázs Meskó, Lionel N,
Michael Natterer, Jehan Pagès, Juan Palacios, Alexandre Prokoudine,
Christopher Rogers, Michael Schumacher, shark0r, Dimitris Spingos,
Tobias Stoeckmann, Andika Triwidada, Massimo Valentini.
Overview of Changes from GIMP 2.9.4 to GIMP 2.9.6
=================================================
Core:
- Make it possible to use multithreading in GEGL and raise max amount
of threads to 64. Given how unstable this feature is, any value
above 1 should be currently treated as a step inside an industrial
microwave oven with the on/off switch on the outside.
- New clipboard implementation allows copying/pasting layers and
layer groups.
- Color tags simplify managing large projects with a lot of layers
and layer groups.
- The Mouse Pointer dialog and colors applied to images are now
color-managed.
- Gamma and precision selectors for newly created images.
- Never dither when converting to a higher bit depth, or to anything
more than 16 bits; don't offer dithering options in these cases.
- Default to linear TRC when converting to 16-bit float.
- Pre-initialize some babl-based pixel format conversion routines
at start-up to decrease the initial lazy intialization cost for
some interactions.
- Remove max size limitation of 4GB for XCF files.
- Support clipboard images in the clipboard brush and pattern.
- libgimp calls are now thread-safe.
Layers and compositing:
- Layer modes' code is now refactored to separate gamma-corrected
variations from the linear light ones, legacy modes have been
preserved to support older XCF files. UI to switch between the two
is experimental and should be treated as a temporary design.
- Blending and compositing of layers are configurable separately for
more flexibility now, compositing can be linear TRC, perceptual TRC
or CIE LAB.
- Layer blending color space and compositing color space are
configurable now.
- Layers created from the GUI and from plug-ins now default to
normal mode (not normal-legacy), unless all the existing layers
in the image are also in legacy mode.
- New layer modes: linear burn, vivid light, linear light, pin light,
hard mix, exclusion, merge, split, luminance (rgb), pass-through
(for layer groups only).
- Make erase mode an ordinary layer/paint mode.
- Better performance of HSV-based layer modes.
- Rename "Color (HSV)" mode to "Color (HSL)" to indicate the actual
color space being used.
On-canvas interaction changes:
- Refactor on-canvas interaction code out of some of the tools and
make it reusable.
- Update tools accordingly.
- Make on-canvas interaction accessible to GEGL-based filters and
use it in the Spiral and Supernova filters as a test case.
GUI and usability:
- Easily add or remove layer masks by clicking either the layer
preview or a new button in the Layers dialog.
- Enhance the Layer Attributes dialog to provide the single UI for
setting layer's name, blending mode, opacity, and offset,
toggling visibility, link status, various locks, color tags.
- Add a Save As button to the “Quit GIMP” dialog and raise images
on click for easy checks.
- Allow to choose fill color when resizing layers and images.
- Quick Mask and Channel Attributes dialogs use the new spinscale
widget for the mask opacity slider.
- Enable grid views of dynamics and tool presets.
- Allow to zoom with middle mouse button + control + drag up/down.
- For all paint tools, when switching to the color picker mode,
don't rely on the exact modifier being pressed or released. Instead,
check if only the right modifier is pressed after *each* modifier
change, and switch to color picking if it is.
- On startup, GIMP checks for duplicate accelerators in menus, and
removes duplicates.
- Standard (Freedesktop) and GTK+ icons can now be set by the icon
theme for a fully consistent style.
- Many new icons.
- Toolbox buttons do not grab focus anymore, which used to break
usage of the Tab key and other canvas-related shortcuts after
changing tools with a pointing device click.
- Delete Layer/Channel/Path are consistently the last option in
respective dialogs now.
- Extend the text along the tangent of the last path stroke, when
the length of the path is shorter than the width of the text to be
warped.
- Allow to toggle the histogram dialog between gamma and linear.
- New 'Colors -> Linear Invert' command to provide radiometrically
correct color inversion.
- Quit dialog now exits when all the images in the list have been
saved.
- The built-in error dialog now displays errors outputted by GEGL.
- Shift-clicking the visibility icon of a layer in a layer group now
toggles its exclusive visibility within this layer group.
Color selection and management:
- Add the profile import policy to Preferences -> Import.
- Color management for GEGL-based filters is expensive, so it's off
by default for now, and options are hidden by default too.
- Add LCH color selector, with support for gamut checking.
- Default to magenta for out-of-gamut color.
- Make all script-fu color buttons color-managed.
Configurability:
- Remember settings of many dialogs across sessions.
- New Interface / Dialog Defaults page in the Preferences dialog to
control defaults values of various dialogs.
- Settings on some individual pages of the Preferences dialog can be
reset separately now.
- Vertical scrollbar added to keep the height of the Preferences
dialog fitting small displays.
- Allow mouse to optionally configure tablet devices
- Allow creating shortcuts containing the Cmd key + mouse wheel events.
- Default to 300ppi and 1920x1080px for new documents.
- Default to 62px font size.
- Do not allow Alt+[0-9] shortcuts, they are typically reserved for
display switching.
- Icons size is now a configurable option, not a theme feature.
The icon size is also auto-guessed from monitor resolution now.
- It is now possible to have keybindings for previous/next/top/bottom
vectors.
Tools:
- Complete the Handle Transform tool and make it available by default.
- Add Hue-Chroma operation/tool that operates in CIE LCH color space.
- Replace Color Balance, Colorize and Hue-Saturation with GEGL-based
filters with a custom user interface to ease future transition to
non-destructive editing planned for v3.2. Remove the "Image ->
Tools -> Color Tools" submenu.
- The Move tool now shows relative coordinates when moving guides
and sample points.
- The Measure tool has better digit precision now (before that, at
4000 PPI, up to 7 pixels would show up as 0 mm, then at 0.1 mm from
the 8th pixel etc.).
- All paint tools now display the angle (relatively to the horizontal
line, centered on previously drawn position) alongside distance in
status bar when straight line constraining (holding shift when
painting).
- Performance of the Fuzzy Select and the Bucket Fill tool has been
improved.
- The Fuzzy Select and the Bucket Fill tool now can select colors by
CIE L, C, and H.
- Unclutter transform tools: default to "no grid", hide the original
layer during the interactive transform (except for the Flip tool).
- Make the Warp Transform tool faster, add more options, use
the linear sampler to ensure crisp lines after an erase.
- Select by Color and Color Picker tools work now correctly in color
spaces other than sRGB.
- Free Select tool now waits for Enter being pressed to confirm
selection, which enables you to tweak positions of polygonal selection.
- Color Picker doesn't snap to anything when picking colors anymore,
always draws the outline of the averaged region (not only while the
mouse is being pressed), and supports arbitrary range of values
regardless of the actual image color precision.
- Color Picker now displays pick position (also visible in the
Sample Points dialog now), as well as values in CIE LAB and CIE LCH.
- Uncommitted selection by the Intelligent Scissors tool is not
discarded on tool change anymore.
- For Intelligent Scissors, GIMP now checks whether the first and the
last isegments are distinct before closing the curve.
- Flip tool: add Clipping option to the flip tool. Add support for
reflecting across guides: when clicking on a guide while using the
Flip tool, reflect the active item across the guide, rather than
around its center.
Painting:
- The Smudge tool now has a Flow control that allows mixing in both
constant and gradient color while smudging. There's another new
option to never decrease alpha of existing pixels while smudging
in the tools options now as well.
- Rulers, scrollbars, and the Navigation dialog follow canvas
rotation now.
- Canvas rotation is now snappier in certain cases.
- For bitmap brushes, GIMP now caches hardness and disables dynamic
change of hardness to improve painting performance. Bitmap brushes
also don't get clipped anymore, when hardness is less than 100.
- Allow painting on transparent layers with modes other than normal.
- Add a specialized convolution algorithm for the hardness blur
to make it faster.
- Make the Force option insensitive for the Pencil tool.
- Add new "Pressure Size" dynamics.
File Formats:
- Make the default raw (DSLR) image importer configurable.
- Add RawTherapee plug-in to pre-process various raw (DSLR) images,
RawTherapee v5.2 is the minimum requirement.
- Add new file-raw-placeholder plug-in that registers itself for
loading all raw formats from file-raw/file-formats.h, but does
nothing except returning an error message pointing to darktable
and RawTherapee.
- Add native WebP loader/exporter with support for ICC profiles,
animation, metadata.
- The TIFF loader will not generate warnings about private tags
anymore.
- Handle linear gamma PNG files correctly, provide a combo box for
specifying PNG bit depth / variant at exporting time.
- Add support for linear burn, linear light, vivid light, pin light,
and hard mix layer modes in PSD (importing and exporting).
- Load PSD files with layers which contain additional information
with a length that is not divisible by 4.
- Add support to import/export layer color tags from/to PSD files.
- Optionally convert all imported (not XCF) images to 32-bit linear
floating point, and optionally add a little noise in order to
distribute the colors minimally.
- Optionally add alpha channel to layers of imported images
(configurable in Preferences > Import).
- Support writing PNM files with 16-bit image precision.
- Improve support for PCX files:
* saving 1bpp and 4bpp images (according to palette size).
* loading 2bpp, 2 planes/1bpp, 3 planes/1bpp and 4bpp images.
* non-Black&White monochrome PCX files (any 2 colors according to
the palette).
- Add support for exporting multi-page PDF from image layers, with
optional reversed order.
- Add RLE support for RGB565 in file-csource.
Metadata:
- Add new metadata viewer that uses Exiv2 to display Exif, XMP, IPTC,
and DICOM metadata (the latter is displayed on the XMP tab).
- Add metadata editor that supports adding/editing writing XMP, IPTC,
DICOM, and GPS/Exif metadata, as well as loading/exporting metadata
from/to XMP files.
Printing:
- Print resolution can now be reset to defaults, new values for the
same image is actually used now without reloading the image.
Plug-ins:
- The Screenshot plug-in now assigns either monitors profile or
converts to sRGB.
- The Screenshot plug-in can now take screenshots of a single window
and include the mouse pointer in the same time (if the desktop/OS
allows it).
- Port smooth-palette to GEGL.
- Enhance the raw (not the digital negative) files plugin:
introduce exporting settings and remember them across sessions,
make the plugin invokable non-interactively, and more.
- Plug-ins can now be installed into first level directories of a
plug-ins/ folder. This is in particular to avoid the "DLL hell"
with shared libraries installed by a plug-in, interfering with other
unrelated plug-ins. The entry point file has to be named the same as
the directory (minus extension).
Filters:
- Add GEGL-based filters: Neon (Edge detection), Wavelet Decompose,
Image Gradient, Symmetric Nearest Neighbor, Extract Component,
RGB Clip, Simple Linear Iterative Clustering, Waterpixels, Spiral.
- Add rotate/flip buttons to the Convolution Matrix filter's GUI
to rotate/flip the matrix.
- For GEGL-based filters, use a new metadata language to dynamically
control UI attributes based on context (e.g. auto-disable
unapplicable options).
- Allow filter actions to have hardcoded default operation settings
by encoding them directly in the string attached to all filter
actions.
Color Palettes:
- Merge Palettes command is available for multiple selected color
palettes now.
Assets / Resources:
- Some basic presets are available for the Crop tool now: 2x3,
3x4, 16:10, 16x9, and square.
- Documents templates have been updated and now feature popular,
contemporary document presets for both print and digital media.
PDB:
- Rename *-paste-as-new to *-paste-as-new-image.
- Add PDB API for layer blend space, compositing space, and
compositing mode.
Build:
- Depend on LCMS2.7+ now, because earlier LCMS2 releases caused
problems with certain GIMP blend modes.
- Depend on libpng 1.6.25+ to avoid warnings about known incorrect
sRGB profiles, also avoid various vulnerabilities.
- Depend on glib-networking now for HTTPS support.
- Depend on librsvg 2.40.6 which fixes rendering bugs.
- Add a flatpak-builder manifest.
OS-specific changes:
- Help browser launches on macOS now.
Bugs:
- Overall 204 bugs have been fixed or partially addressed since
GIMP 2.9.4.
Translations:
- Updated: Catalan, Chinese (Taiwan), Croatian, Czech, Danish,
Finnish, French, German, Greek, Hungarian, Icelandic, Italian,
Kazakh, Occitan, Polish, Portuguese, Russian, Scottish Gaelic,
Serbian, Slovak, Slovenian, Spanish, Swedish.
Overview of Changes from GIMP 2.9.2 to GIMP 2.9.4
=================================================
Core:
Color Management:
- add new GimpColorTransform object to create abstraction from LittleCMS
- now color-managed:
- layer/image/color palette/gradient/pattern previews
- Color Picker tool
- color buttons of GimpColorHistory
- GimpFgBgEditor, as used e.g. in the toolbox
- color selectors
- DND widget
- painting tools
- copying layers/paste buffer between images
- Colors applied to images
- GimpColorPanel and its color dialog (color widgets in dialogs)
- color areas created from menu actions
- color management for grayscale images, including setting preferred
ICC profile
- add fast switching between color managed display and soft-proofing
- add a per-image "is color managed" switch and show the image's
"is color managed" state in the window title string
- add basic support for creating images with color profiles
- add "Optimize" options for display and soft-proofing to optionally
speed-up rendering at the cost of color fidelity
- add Image -> Color Management -> Save Color Profile to File...
- improve the naming of generated ICC profiles
- add a shortcut to the profile chooser dialog on OS X too
- don't let display color management settings affect file import
- enable color management when a profile is assigned to the image
- enable color management when the image is converted from/to grayscale
- pass the right color profile around in gimp_selection_float()
- hardcode the CMYK selector's conversion parameters, as well as NTSC
parameters in babl/GEGL/GIMP
- have all previews track the monitor they are on
Core:
- add "Select -> Flood" select action
- add "Select -> Remove Holes" action
- add "Border style" combo to the "Select -> Border..." dialog
- do not request xcf compat mode when compat_toggle not sensitive
- initialize fontconfig in the background to be able to show a pulsing
progress bar when rebuilding the list of fonts (typically, the first
time GIMP runs)
- fix the Behind blending mode
- make Burn mode output match Gimp 2.8 (partial revert of bug 744265)
- improve file magic matching
- add a custom guide concept
- improve updating the statusbar messages and icons
GUI:
Menus:
- move the image-duplicate action next to image-new
- add Image -> Color Management -> Color Management Enabled
- change "Select _Custom Color..." to "_Custom Color..."
- change "Export" to "Export..." in the File menu
Dialogs:
- include recently used colors in the Dockable Colors dialog
- add RGB-based Luminance channel to the Histogram dialog
- fix remembering the order of dockable dialogs
Preferences:
- reorder the prefs categories tree and rename some pages
- move "Snap Distance" to the prefs dialog's "Snapping" page
- add configuration for undo preview size
- clean-up Preferences -> Color Management
- add "Shortcut [some modifier] + Mousewheel" for changing pen size
Themes:
- rename theme "Default" into "System"
- add new GUI themes: Lighter, Light, Gray, Dark, Darker
Icons:
- add icon theme selection and make the icon theme path configurable in prefs
- preserve 2.8 pixel-perfect icon theme under the name "Legacy"
- add new symbolic icon theme for GIMP
- add a scalable icon theme and a configure option --enable-vector-icons
Widgets:
- add new GimpBufferSourceBox widget and use it in GimpOperationTool
View/Display:
- fix various bugs related to rotated canvas
- make GIMP not ignore 'Maximized' hints on startup in Windows
- enable a pulsing progress bar in the splash
- make new images jump around much less
- fix image position when entering/leaving fullscreen mode
- make layer boundary re-drawn correctly on scrolling
- make images not appear completely black when images dockable is visible
- have all previews track the monitor they are on
Tools:
Fuzzy Select:
- add "Diagonal neighbors" option
Foreground Select:
- fix ghost brush outline
Bucket Fill:
- add "Diagonal neighbors" option
Posterize:
- turn the posterize tool into an ordinary GEGL filter
- remove posterize from Tools -> Colors
Desaturate:
- turn the Desaturate tool into a normal GEGL filter
- move "Desaturate" to Colors -> Desaturate
Align:
- add vertical offset to distribution options
Paths:
- improve performance
Flip:
- rename options to "Transform" and "Direction"
Cage Transform:
- fix a few performance issue
Unified Transform:
- make the tool not fail when currently selected layer is hidden
Text:
- fix text input methods to work in-place (not in an overlayed box)
- add background colors setting, only exposed for advanced input methods
Blend:
- use gegl:distance-transform in the blend tool, it has a progress now
- make shapeburst work with the new interactive gradient code
All Painting Tools:
- add mirror symmetry
- remove artifacts from painting tools in Burn blending mode
- add shortcut actions for changing spacing, hardness, and force
MyPaint:
- dramatically improve performance of the tool and enable it by default
- add Colorize mode
- add a toggle to change between erase & paint mode
- add a brush selector to the MyPaint brush options
- add a dockable dialog to choose a brush, with tagging
- read tags from MyPaint brushes
- improve blend math
- allow plug-ins to register procedures in the <MyPaintBrushes> menu
Smudge:
- fix the clipping of out-of-gamut channel values
- fix the handling of layers with alpha channels
Ink:
- the range of angle is now [-PI..PI]
Plug-ins/GEGL Filters:
Preview:
- add a "split preview" feature to GEGL ops
- allow to switch the split preview between horizontal and vertical
- allow to swap the before/after position
Filters:
- update the "Recently used" menu with GEGL filters
- replace Selective Gaussian Blur with the GEGL version
- add gegl:saturation as Colors -> Saturation
- add gegl:high-pass as Filters > Enhance > High Pass
- add new gegl:gegl filter that executes a custom processing chain
- port Tile and Pagecurl plug-ins to GEGL
- refactor the screenshot plug-in into backend and front-ends, one
per X.org, Wayland, Windows, OS X
- add Monochrome option to the GEGL version of Channel Mixer
- bring dialog titles and help IDs to GEGL filter dialogs
File Plug-Ins:
- add darktable plug-in to pre-process various raw images
- port file-gif-save and file-tiff to GIO
- TIFF support:
- make libtiff a hard dependency
- merge the file-tiff-load and file-tiff-save plug-ins
- fix various tiff exporting bugs
- EXR support:
- read comment, Exif, and XMP data from EXR files
- use GIMP's internal profile when loading EXR
- PSD support:
- fix the loading of files with adjustment or fill layers
- fix the reading of layer group structure
- fix the raw image loader
- fix the layer groups support in OpenRaster
- code cleanup in file-bmp
- fix the exporting of KISS - CELL (*.cel) images
- resurrect the email plugin
- use GIO to figure if a file is hidden
PyGimp:
- update pyconsole code
- add binding for GimpImageType
- add GimpColorConfig object
- add type definition for GimpColorManaged
- make GimpParasite type known to the code generator
- require Pycairo in configure, link gimpui against pycairo
- fix the application of paintbrush size in Python scripts
Script-Fu:
- make regex matching return character indexes
- fix the hanging of Script-fu on machines with 64-bit longs
- update tinyscheme code from upstream
PDB:
- Bug 759104 - Allow coordinates of sample points to be accessed from scripts
Build:
build/win:
- Start building libmypaint.
- Add pcre and upgrade glib2 to 2.48.1
- Upgrade exiv2 to 0.25
- Clear DISPLAY before building
- Disable webkitgtk
OS-specific changes:
Windows:
- Add support for generating crash backtraces using Dr. MingW
Overview of Changes from GIMP 2.8.0 to GIMP 2.9.2
=================================================
Core:
The core got completely ported to GEGL, listing all changes involved
would be too much, therefore we summarize the changes in app/ per
source subdirectory:
base
composite
paint-funcs:
- Remove these directories, they contained the old pixel
manipulation functions
config:
- Remove GimpBaseConfig, add GimpGeglConfig
- Add config options for new features
core:
- Add some things that used to live in base/, like the temp-buf,
boundary and histogram code
- Port all functions to GEGL and higher bit depths
- Keep the image around as GEGL graph, all other compositing is gone
- Add non-destructive drawable filters, but use them only for previews
- Implement the floating selection as drawable filter
- Implement GimpImageMap using drawable filters
- Move batch processing to gimp-batch.[ch]
- Run batch commands in an already running GIMP instance
- Ported almost everything from filenames/FILE/fd to GFile/GIO
- Be smarter about migrating old user config files
- Move many object struct members to private structs
file:
- Support GIO-ported file load/save procs, handle remote files generically
- Add content locking to items to prevent them from being edited
- Add position locking to items to prevent them from being translated
- Implement all color management in the core
- Add an automatic palette of recently used colors
- Implement metadata handling in the core
gegl:
- Now contains utility functions and abstractions to work with
GEGL more easily
- Move all operations to the new operations/ directory
operations:
- New directory containing all GIMP-internal GEGL operations
and their config objects (if any)
- Add a correct version of the overlay layer mode
- Add LCH layer modes
paint:
- Port all paint cores to Gegl
- Add MyPaint brush paint core
pdb:
- Add compat procedures that work like the removed plug-ins
- Use the new GimpValueArray, GValueArray got deprecated
plug-in:
- Allow plug-ins to access image data at full bit depth
- Add a compat mode so unported plug-ins always get 8-bit data
text:
- Port text rendering to GEGL
- Use HarfBuzz to inspect fonts for creating an example string
xcf:
- Add zlib compression to XCF loading/saving
GUI:
- Add GUI to handle the new high bit depths and conversion between them
- Add new action group "filters" which can run arbitrary GEGL ops
- Add lots of actions invoking GEGL ops that replace removed plug-ins
- Preview all GEGL ops live on the canvas, using drawable filters
- Mostly switch from using stock-ids to icon-names
- Turn all stock icons into named icons and add an icon theme
- Allow selecting colors from an image's colormap
- Add "Show in file manager" to everything that has a filename
- Add an action search dialog to find actions by keyword and execute them
- Split the save dialog into subclasses for load, save and export
- Implement various color management dialogs that were in the lcms plug-in
- Make sure windows appear on the correct monitor
- Simplify and reduce the actions that modify paint tool behavior
- Add canvas rotation and flipping
- Allow zooming to the selection
- Make the image tab position configurable in single window mode
- Add separate snapping settings for fullscreen mode
- Remove bitmaps cursors and only support RGBA cursors
- Color manage drawable and image thumbnails
- Add more format string options for the image title
- Use the external gtkosxapplication package instead of included code
- Add a generic GimpPopup class and use it instead of duplicating code
- Make the generated GUI of GEGL ops much better
- Allow to implement custom GUI for gegl ops, and do that in some cases
- Add GimpDial, GimpPolar and GimpCircle to be used for angle and hue picking
Tools:
- Add an "experimental playground" for unfinished tools
- (experimental) Add a tool that paints with MyPaint brushes
- (experimental) Add an n-point deformation tool
- (experimental) Add a transform tool with a variable # of handles
- (experimental) Add a seamless clone tool
- Add a unified transform tool that allows rotating, scaling, perspective
- Add a warp tool as replacement for the IWarp plug-in
- Allow tool dialogs to be embedded on the canvas generically
- Add much more options to painting, like the ability to lock
tool options to brush defaults, and to zoom the brush with the canvas
- Make the blend tool work interactively in realtime
- Add undo/redo to many tools (using the normal shortcuts)
Libgimp:
- Deprecate the entire old pixel manipulation API
- Add API to get a drawable's buffer, the rest can be done with GEGL
- Add high bit depth support when using the new buffer API
- Make many enum value names sane and deprecate the old names
- Many core enums moved here instead of proxying them via PDB generation
- Add API to stroke vector outlines, with all core properties
- Add more context API that affects other procedures
- Deprecate API with weird names, and add new API with less arguments
- Add metadata and color management API, utility functions and widgets
- Split GimpPickButton into per-platform backends and fix it on OS X
Plug-ins:
- Remove lots of plug-ins that are now implemented as GEGL ops
- Remove the lcms plug-in, this is now done in the core/libgimp
- Remove the metadata plug-ins, this is now done in the core/libgimp
- Remove the file-uri plug-in, this is now done in the core using GIO
- Port many file plug-ins to GIO
- Port many plug-ins that are not strictly filters to GEGL
Source and build system:
- Don't use INCLUDES in Makefile.am, use AM_CPPFLAGS instead
General:
- Lots and lots of bug fixes
- Translation updates
Changelog:
GEGL-0.4.0 2018-04-26
GEGL 0.4.x is a stable release series of GEGL to have a stable API
and ABI to go with GIMP-2.10. When the need arises to break API or
ABI compatibility the 0.4.x series will get its own branch and
unstable API experiments and development, 0.5.x will happen in
master. For now though master will track the 0.4.x series. Core
Change GeglParamSpecSeed from int to uint to match the value range
of GeglRandom's seed. Operations
ripple fixed remaining issues needed to remove legacy GIMP plug-in
in GIMP. spherize, requrise transform and color-overlay moved out
of workshop. ppm-load ported to GIO.
Contributors to this release: Ell, Piotr Drąg, Anders Mortensen,
Anders Jonsson, Marco Ciampa, Daniel Korostil, Øyvind Kolås, Jon
Nordby and Simon Budig.
Brushes used by MyPaint and other software using libmypaint.
This data package is versionned. This are the brushes to be used
by libmypaint 2.x, current development version which has no releases
to the day of writing. If you want brushes for the libmypaint 1.x
releases, do not install mypaint-brushes from master, but from
"v1.3.x" branch (or last release tagged with a "v1.x" version).
Changelog:
2018-04-10 babl-0.1.46
added extensions with more coverage for u32, half and other utilit fast paths
improving fast path coverage.
2018-02-18 babl-0.1.44
Fix bug in custom primaries/ICC fast paths, improve meson build<br/>
2018-01-23 babl-0.1.42
Fully initialize fishes when loading from cache. <br/>
2018-01-16 babl-0.1.40
Added format "CIE XYZ alpha" color model and formats.
New API babl_process_rows for reduced overhead in some scenarios; though bigger
gains seen also for regular babl_process with reimplemented branch-free
dispatch, and faster cbrt. Added meson build; being tested in parallel with
auotmake, Improved reference conversions for formats skipping some of models
components, Fixed gamma handling in indexed/palettized formats and improved
gamma precision consistenct in sse2 conversions.<br/>
2017-11-15 babl-0.1.38
Added format "CIE L float", a couple of protections against division by 0.0
2017-11-10 babl-0.1.36
Optimized customized primary aware code paths for CIE Lab<->RGB conversions,
improved accuracy of gamma approximations. New API babl_format_exists() for
checking validity of babl format name, crash proofing of cache handling and use
of environment variables.
2017-10-06 babl-0.1.34
Brown paper bag release, Fix indexed / custom primaries conflict, and re-export
a symbol used by old GEGL/GIMPs.
2017-10-03 babl-0.1.32
Added custom primaries and TRC support through ICC parsing, improved
float<->half performance, rewrite of all conversions functions to adhere to new
signature.
2017-07-15 babl-0.1.30
Thread stability for palette modes, stricter alpha preservation, now
cross-compilable on android.
2017-05-30 babl-0.1.28
Fast paths for Lav <-> Lch, release triggered by pending GIMP release.
2017-05-09 babl-0.1.26
Build and install HCY color space, platform independences fixes to fish cache.
2017-02-01 babl-0.1.24
Improvements to profile cache persistance, fast paths that improve actual GIMP
use on various precisions, use single precision constants for some more of CIE
computions.
2016-11-05 babl-0.1.22
Added cache of profiled conversions, added HCY color model, some precision and
performance updated for fast paths.
2016-11-05 babl-0.1.20
Fix run-time errors, leaks, and race conditions. Add conditional fast paths.
2016-06-13 babl-0.1.18
Bugfix: take alpha threshold in consideration when processing floats in SSE2.
2016-02-12 babl-0.1.16
Improvements to half float reference, SIMD, and fast-paths, and CIE float fast
paths; cleanups of fast path extensions.
1.17.0 - 2018-04-15
-------------------
* :class:`cairo.Surface` and :class:`cairo.Device` can now be used as context
managers. 🐛`103`
* Fix a leak when a cairo error was raised.
* Fix a leak when a mapped surface was GCed instead of unmapped.
* Make it possible to use the C API with Python 3 outside of the compilation
unit doing the import by defining ``PYCAIRO_NO_IMPORT``. 🐛`110`
* Implement PEP 561 (added a py.typed marker)
- 4/2/2018: version 1.0.0
This is a binary compatible release.
* lossy encoder improvements to avoid chroma shifts in various circumstances
(issues #308, #340)
* big-endian fixes for decode, RGBA import and WebPPictureDistortion
Tool updates:
gifwebp, anim_diff - default duration behavior (<= 10ms) changed to match
web browsers, transcoding tools (issue #379)
img2webp, webpmux - allow options to be passed in via a file (issue #355)
This major update includes:
* a new key 'decade' for \gantttitlecalendar
* a new key 'time slot unit' for using one day, month or year per time
slot; this key replaces 'compress calendar' % a new macro \ganttvrule
for drawing arbitrary vertical rules (similar to the today rule), as
well as associated keys 'vrule', 'vrule offset', 'vrule label font',
and 'vrule label text' % a new key 'expand chart', which specifies that
a chart should expand horizontally to a given dimension % a new key
'title label text', which allows fine-tuning of title label formatting
% compatibility with the amsgen package
The GStreamer team is proud to announce a new major feature release of your favourite cross-platform multimedia framework!
The 1.14 release series adds new features on top of the previous 1.12 series and is part of the API and ABI-stable 1.x release series of the GStreamer multimedia framework.
Highlights:
WebRTC support: real-time audio/video streaming to and from web browsers
Experimental support for the next-gen royalty-free AV1 video codec
Video4Linux: encoding support, stable element names and faster device probing
Support for the Secure Reliable Transport (SRT) video streaming protocol
RTP Forward Error Correction (FEC) support (ULPFEC)
RTSP 2.0 support in rtspsrc and gst-rtsp-server
ONVIF audio backchannel support in gst-rtsp-server and rtspsrc
playbin3 gapless playback and pre-buffering support
tee, our stream splitter/duplication element, now does allocation query aggregation which is important for efficient data handling and zero-copy
QuickTime muxer has a new prefill recording mode that allows file import in Adobe Premiere and FinalCut Pro while the file is still being written.
rtpjitterbuffer fast-start mode and timestamp offset adjustment smoothing
souphttpsrc connection sharing, which allows for connection reuse, cookie sharing, etc.
nvdec: new plugin for hardware-accelerated video decoding using the NVIDIA NVDEC API
Adaptive DASH trick play support
ipcpipeline: new plugin that allows splitting a pipeline across multiple processes
Major gobject-introspection annotation improvements for large parts of the library API
GStreamer C# bindings have been revived and seen many updates and fixes
The externally-maintained GStreamer Rust bindings have many usability improvements and cover most of the API now