Accepting request 882815 from graphics
OBS-URL: https://build.opensuse.org/request/show/882815 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gimp?expand=0&rev=126
This commit is contained in:
commit
5ecda321f2
@ -1,46 +0,0 @@
|
|||||||
From aa135ac1f814bf6197b2951ec0796547907a08ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jehan <jehan@girinstud.io>
|
|
||||||
Date: Mon, 14 Dec 2020 19:53:38 +0100
|
|
||||||
Subject: [PATCH] app: make "gegl:introspect" an optional operation dependency.
|
|
||||||
|
|
||||||
Check at runtime for the operation availability and set the "Show Image
|
|
||||||
Graph" action active depending on this check.
|
|
||||||
|
|
||||||
This goes with discussions to make this operation optional with a
|
|
||||||
runtime check for the tool `dot`.
|
|
||||||
See: https://gitlab.gnome.org/GNOME/gegl/-/merge_requests/84
|
|
||||||
---
|
|
||||||
app/actions/debug-actions.c | 6 ++++++
|
|
||||||
app/sanity.c | 1 -
|
|
||||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/app/actions/debug-actions.c b/app/actions/debug-actions.c
|
|
||||||
index 98a2f07..70ceb0d 100644
|
|
||||||
--- a/app/actions/debug-actions.c
|
|
||||||
+++ b/app/actions/debug-actions.c
|
|
||||||
@@ -98,4 +98,10 @@ void
|
|
||||||
debug_actions_update (GimpActionGroup *group,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
+#define SET_SENSITIVE(action,condition) \
|
|
||||||
+ gimp_action_group_set_action_sensitive (group, action, (condition) != 0)
|
|
||||||
+
|
|
||||||
+ SET_SENSITIVE ("debug-show-image-graph", gegl_has_operation ("gegl:introspect"));
|
|
||||||
+
|
|
||||||
+#undef SET_SENSITIVE
|
|
||||||
}
|
|
||||||
diff --git a/app/sanity.c b/app/sanity.c
|
|
||||||
index 0ad044a..81120bb 100644
|
|
||||||
--- a/app/sanity.c
|
|
||||||
+++ b/app/sanity.c
|
|
||||||
@@ -650,7 +650,6 @@ sanity_check_gegl_ops (void)
|
|
||||||
"gegl:hue-chroma",
|
|
||||||
"gegl:illusion",
|
|
||||||
"gegl:image-gradient",
|
|
||||||
- "gegl:introspect",
|
|
||||||
"gegl:invert-gamma",
|
|
||||||
"gegl:invert-linear",
|
|
||||||
"gegl:lens-blur",
|
|
||||||
--
|
|
||||||
2.30.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2db84b57f3778d80b3466d7c21a21d22e315c7b062de2883cbaaeda9a0f618bb
|
|
||||||
size 33152226
|
|
3
gimp-2.10.24.tar.bz2
Normal file
3
gimp-2.10.24.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:bd1bb762368c0dd3175cf05006812dd676949c3707e21f4e6857435cb435989e
|
||||||
|
size 31546295
|
120
gimp.changes
120
gimp.changes
@ -1,3 +1,123 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 29 13:17:56 UTC 2021 - Paolo Stivanin <info@paolostivanin.com>
|
||||||
|
|
||||||
|
- Update to 2.10.24
|
||||||
|
- Core:
|
||||||
|
- Ignore Pentax and PentaxDng metadata at export because they are
|
||||||
|
unsupported.
|
||||||
|
- DBus calls (remote file open, typically with double click on file
|
||||||
|
browser; and remote command run) are now processed after all command
|
||||||
|
line files (in case of calls during startup) and in the call order
|
||||||
|
(FIFO) for consistency. Some timeout has also been added to not spam
|
||||||
|
the core process with non-processable DBus calls during startup.
|
||||||
|
- Display profile name in "Color space" field of Image Properties and
|
||||||
|
improve ellipsis & wrap on dialog fields whose contents' size is not
|
||||||
|
controllable together with better dialog size management.
|
||||||
|
- Fix stack overflow when loading very large XCF files on Windows.
|
||||||
|
- Point snapping now works outside the canvas. This is used for snap
|
||||||
|
to guides, grid and vectors. Snap to grid only works off-canvas when
|
||||||
|
"Show All" is enabled because off-canvas grid is not visible
|
||||||
|
otherwise, though snap to guide and vectors will always work
|
||||||
|
off-canvas.
|
||||||
|
- Libgimp:
|
||||||
|
- Various metadata improvements:
|
||||||
|
* Improve reading of iptc tags that appear more than once.
|
||||||
|
- Plug-ins:
|
||||||
|
- JPEG export will better advertize when metadata export fails,
|
||||||
|
possibly with relevant error message. Image export would not fail,
|
||||||
|
but at least we make the person aware metadata is not properly
|
||||||
|
exported.
|
||||||
|
- More robust TIFF import and export:
|
||||||
|
* Better handling of Exif.Thumbnail.* tags on export.
|
||||||
|
* Import now ignores TIFF pages with invalid directory (rather than
|
||||||
|
freezing and output an error to warn of possible data loss).
|
||||||
|
* Import attempts to count the directories by reading them when the
|
||||||
|
headers does not announce any directory, which allows to salvage
|
||||||
|
images with improper header. Also if reading of a directory fail,
|
||||||
|
we now output a message to warn of possible data loss.
|
||||||
|
* Fixed loading 2 and 4-bit TIFF images in grayscale and indexed.
|
||||||
|
* Improve support of ExtraSamples fields with non-conformant TIFF
|
||||||
|
files.
|
||||||
|
* Improve loading of multi page tiffs with linear TRC.
|
||||||
|
* More safety checks as a result of fuzz-testing.
|
||||||
|
* Improve loading of MinIsWhite and MinIsBlack images.
|
||||||
|
- GeoTIFF tag support added (recognized and stored into image
|
||||||
|
parasites at import, then exported back when TIFF format is used)
|
||||||
|
with appropriate "Save GeoTIFF data" checkbox (checked by default)
|
||||||
|
to disable GeoTIFF metadata export when not desired.
|
||||||
|
- The metadata viewer and editor got a big cleaning and refactoring
|
||||||
|
pass, as well as various fixes and several improvements:
|
||||||
|
* Fix handling of IPTC tags which can appear more than once (such as
|
||||||
|
"Keywords") in both the viewer and editor.
|
||||||
|
* Always read both the IPTC and XMP equivalent tags in the editor,
|
||||||
|
instead of assuming they are necessarily the same.
|
||||||
|
* More IPTC equivalents of XMP tags added:
|
||||||
|
+ Iptc.Application2.LocationName <=> Xmp.iptc.Location
|
||||||
|
+ Iptc.Application2.BylineTitle <=> Xmp.photoshop.AuthorsPosition
|
||||||
|
+ Iptc.Application2.CountryCode <=> Xmp.iptc.CountryCode
|
||||||
|
+ Iptc.Application2.Writer <=> Xmp.photoshop.CaptionWriter
|
||||||
|
* The editor now properly saves IPTC tags.
|
||||||
|
* Improve UTF-8 conversion to avoid double string conversion (hence
|
||||||
|
actually breaking encoding).
|
||||||
|
* Use proper unit abbreviations and proper label casing.
|
||||||
|
* GPS data is now properly formatted with better precision and with
|
||||||
|
translatable string parts and tooltips are added to explain how to
|
||||||
|
correctly edit GPS data (latitude, longitude, altitude).
|
||||||
|
Also seconds part of latitude/longitude is now saved with more
|
||||||
|
precision and altitude details now switch from .1m to .10m.
|
||||||
|
* Better error reporting when the editor fails to write a tag, with
|
||||||
|
proper GUI error, so that such error do not go unseen.
|
||||||
|
* Better error handling when closing the editor or viewer too, and
|
||||||
|
improve error handling when the calendar dialog fails.
|
||||||
|
* Use a logging domain for debugging-only messages which pollutes
|
||||||
|
the output.
|
||||||
|
* Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:* override the shorter
|
||||||
|
forms Xmp.iptc.Ci* if both are present, since the longer form is
|
||||||
|
more common.
|
||||||
|
* Improve saving of XMP metadata.
|
||||||
|
* And more bug fixes and refactoring steps to get rid of duplicate
|
||||||
|
code.
|
||||||
|
- PNG will now prompt only for layer offset different from zero. Some
|
||||||
|
software were always setting an offset of 0 (e.g.: POV-Ray v3.7) so
|
||||||
|
GIMP would unecessarily prompt the user until now for PNG created by
|
||||||
|
such software.
|
||||||
|
- BMP:
|
||||||
|
* allow loading of BMP images with incorrect BI_BITFIELDS
|
||||||
|
compression.
|
||||||
|
* support loading more bit depth such as 24bpp images.
|
||||||
|
- file-darktable:
|
||||||
|
* support updated Lua API of darktable 3.6 and beyond;
|
||||||
|
* Adding environment contents to debugging output when
|
||||||
|
DARKTABLE_DEBUG env variable is set.
|
||||||
|
- PDF import:
|
||||||
|
* New option to reverse order of layer.
|
||||||
|
* Support fractional DPI (allowing accurate page dimensions).
|
||||||
|
- DDS:
|
||||||
|
* Set blue channel of BC5 dds images to 0 instead of 255.
|
||||||
|
* Fix DDS BC5 compression/decompression with Red and Blue swapped.
|
||||||
|
We detect images created by an older GIMP on loading and swap the
|
||||||
|
channels back.
|
||||||
|
- HEIF:
|
||||||
|
* Removes the "HDR" mention on HEIF 10/12-bit export because high
|
||||||
|
bit depth does not necessarily means HDR.
|
||||||
|
* Runtime detection of HEIC and AVIF file formats (depending on
|
||||||
|
available encoders and decoders), which allows afterwards update
|
||||||
|
of the dependency, but also allows usage for a single format (e.g.
|
||||||
|
for distributions which want to support only AVIF).
|
||||||
|
* With libheif 1.10, visually lossless export is possible for
|
||||||
|
10/12 bit depths too
|
||||||
|
- PSD:
|
||||||
|
* More flexible reading of layer mask record size, skipping invalid
|
||||||
|
or unsupported mask info size, hence allowing us to load more PSD
|
||||||
|
files (at least the part of a PSD we support instead of failing
|
||||||
|
the whole import altogether).
|
||||||
|
- G3 fax images:
|
||||||
|
* Improve error handling when loading.
|
||||||
|
* Be more forgiving on bad lines which were quite frequent on older
|
||||||
|
fax images, allowing to salvage some old images.
|
||||||
|
- Drop 0001-app-make-gegl-introspect-an-optional-operation-depen.patch
|
||||||
|
- Drop libheif-avif-only.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Feb 12 20:13:47 UTC 2021 - Michael Gorse <mgorse@suse.com>
|
Fri Feb 12 20:13:47 UTC 2021 - Michael Gorse <mgorse@suse.com>
|
||||||
|
|
||||||
|
12
gimp.spec
12
gimp.spec
@ -31,7 +31,7 @@
|
|||||||
%bcond_without python_plugin
|
%bcond_without python_plugin
|
||||||
%endif
|
%endif
|
||||||
Name: gimp
|
Name: gimp
|
||||||
Version: 2.10.22
|
Version: 2.10.24
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The GNU Image Manipulation Program
|
Summary: The GNU Image Manipulation Program
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
@ -42,10 +42,6 @@ Source1: macros.gimp
|
|||||||
# openSUSE palette file
|
# openSUSE palette file
|
||||||
Source2: openSUSE.gpl
|
Source2: openSUSE.gpl
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# PATCH-FIX-UPSTREAM git diff GIMP_2_10_22..gimp-2-10 -- plug-ins/common/file-heif.c > libheif-avif-only.patch mrueckert@suse.de -- only offer the fileformats that our current libheif actually supports
|
|
||||||
Patch: libheif-avif-only.patch
|
|
||||||
# PATCH-FIX-UPSTREAM Make graphviz/dot dependency optional -- https://github.com/GNOME/gimp/commit/2cae9b9acf9da98c4c9990819ffbd5aabe23017e.patch
|
|
||||||
Patch1: 0001-app-make-gegl-introspect-an-optional-operation-depen.patch
|
|
||||||
|
|
||||||
BuildRequires: aalib-devel
|
BuildRequires: aalib-devel
|
||||||
BuildRequires: alsa-devel >= 1.0.0
|
BuildRequires: alsa-devel >= 1.0.0
|
||||||
@ -77,7 +73,7 @@ BuildRequires: pkgconfig(cairo) >= 1.12.2
|
|||||||
BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2
|
BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2
|
||||||
BuildRequires: pkgconfig(dbus-glib-1) >= 0.70
|
BuildRequires: pkgconfig(dbus-glib-1) >= 0.70
|
||||||
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.8
|
BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.8
|
||||||
BuildRequires: pkgconfig(gegl-0.4) >= 0.4.24
|
BuildRequires: pkgconfig(gegl-0.4) >= 0.4.30
|
||||||
BuildRequires: pkgconfig(gexiv2) >= 0.10.6
|
BuildRequires: pkgconfig(gexiv2) >= 0.10.6
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.54.2
|
BuildRequires: pkgconfig(glib-2.0) >= 2.54.2
|
||||||
BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.32
|
BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.32
|
||||||
@ -114,7 +110,7 @@ BuildRequires: xdg-utils
|
|||||||
# obs does not automaticaly add this
|
# obs does not automaticaly add this
|
||||||
Requires: libglib-2_0-0 >= 2.54.2
|
Requires: libglib-2_0-0 >= 2.54.2
|
||||||
Requires: libgexiv2-2 >= 0.10.6
|
Requires: libgexiv2-2 >= 0.10.6
|
||||||
Requires: libbabl-0_1-0 >= 0.1.46
|
Requires: libbabl-0_1-0 >= 0.1.78
|
||||||
# Explicitly declare the libgimp versions for upgrade purposes
|
# Explicitly declare the libgimp versions for upgrade purposes
|
||||||
Requires: libgimp-2_0-0 = %{version}
|
Requires: libgimp-2_0-0 = %{version}
|
||||||
Requires: libgimpui-2_0-0 = %{version}
|
Requires: libgimpui-2_0-0 = %{version}
|
||||||
@ -217,8 +213,6 @@ applications that want to make use of the GIMP libraries.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch -p1
|
|
||||||
%patch1 -p1
|
|
||||||
|
|
||||||
export LC_ALL=en_US.UTF-8
|
export LC_ALL=en_US.UTF-8
|
||||||
export LANG=en_US.UTF-8
|
export LANG=en_US.UTF-8
|
||||||
|
@ -1,274 +0,0 @@
|
|||||||
diff --git a/plug-ins/common/file-heif.c b/plug-ins/common/file-heif.c
|
|
||||||
index 945951e5f4..e79419d5f0 100644
|
|
||||||
--- a/plug-ins/common/file-heif.c
|
|
||||||
+++ b/plug-ins/common/file-heif.c
|
|
||||||
@@ -47,7 +47,7 @@ struct _SaveParams
|
|
||||||
|
|
||||||
/* local function prototypes */
|
|
||||||
|
|
||||||
-static void query (void);
|
|
||||||
+static void init (void);
|
|
||||||
static void run (const gchar *name,
|
|
||||||
gint nparams,
|
|
||||||
const GimpParam *param,
|
|
||||||
@@ -73,9 +73,9 @@ static gboolean save_dialog (SaveParams *params,
|
|
||||||
|
|
||||||
GimpPlugInInfo PLUG_IN_INFO =
|
|
||||||
{
|
|
||||||
- NULL, /* init_proc */
|
|
||||||
+ init, /* init_proc */
|
|
||||||
NULL, /* quit_proc */
|
|
||||||
- query, /* query_proc */
|
|
||||||
+ NULL, /* query_proc */
|
|
||||||
run, /* run_proc */
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ MAIN ()
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
-query (void)
|
|
||||||
+init (void)
|
|
||||||
{
|
|
||||||
static const GimpParamDef load_args[] =
|
|
||||||
{
|
|
||||||
@@ -110,87 +110,102 @@ query (void)
|
|
||||||
{ GIMP_PDB_INT32, "lossless", "Use lossless compression (0 = lossy, 1 = lossless)" }
|
|
||||||
};
|
|
||||||
|
|
||||||
- gimp_install_procedure (LOAD_PROC,
|
|
||||||
- _("Loads HEIF images"),
|
|
||||||
- _("Load image stored in HEIF format (High "
|
|
||||||
- "Efficiency Image File Format). Typical "
|
|
||||||
- "suffices for HEIF files are .heif, .heic."),
|
|
||||||
- "Dirk Farin <farin@struktur.de>",
|
|
||||||
- "Dirk Farin <farin@struktur.de>",
|
|
||||||
- "2018",
|
|
||||||
- _("HEIF/HEIC"),
|
|
||||||
- NULL,
|
|
||||||
- GIMP_PLUGIN,
|
|
||||||
- G_N_ELEMENTS (load_args),
|
|
||||||
- G_N_ELEMENTS (load_return_vals),
|
|
||||||
- load_args, load_return_vals);
|
|
||||||
-
|
|
||||||
- gimp_register_load_handler (LOAD_PROC,
|
|
||||||
- "heic,heif"
|
|
||||||
+ if (heif_have_decoder_for_format (heif_compression_HEVC)
|
|
||||||
#if LIBHEIF_HAVE_VERSION(1,8,0)
|
|
||||||
- ",avif"
|
|
||||||
+ || heif_have_decoder_for_format (heif_compression_AV1)
|
|
||||||
#endif
|
|
||||||
- , "");
|
|
||||||
- gimp_register_file_handler_mime (LOAD_PROC,
|
|
||||||
- "image/heif"
|
|
||||||
-#if LIBHEIF_HAVE_VERSION(1,8,0)
|
|
||||||
- ",image/avif"
|
|
||||||
-#endif
|
|
||||||
- );
|
|
||||||
- gimp_register_file_handler_uri (LOAD_PROC);
|
|
||||||
- /* HEIF is an ISOBMFF format whose "brand" (the value after "ftyp")
|
|
||||||
- * can be of various values.
|
|
||||||
- * See also: https://gitlab.gnome.org/GNOME/gimp/issues/2209
|
|
||||||
- */
|
|
||||||
- gimp_register_magic_load_handler (LOAD_PROC,
|
|
||||||
- "heif,heic"
|
|
||||||
-#if LIBHEIF_HAVE_VERSION(1,8,0)
|
|
||||||
- ",avif"
|
|
||||||
-#endif
|
|
||||||
- , "",
|
|
||||||
- "4,string,ftypheic,4,string,ftypheix,"
|
|
||||||
- "4,string,ftyphevc,4,string,ftypheim,"
|
|
||||||
- "4,string,ftypheis,4,string,ftyphevm,"
|
|
||||||
- "4,string,ftyphevs,4,string,ftypmif1,"
|
|
||||||
- "4,string,ftypmsf1"
|
|
||||||
+ )
|
|
||||||
+ {
|
|
||||||
+ GString *extensions = g_string_new (NULL);
|
|
||||||
+ GString *mimetypes = g_string_new (NULL);
|
|
||||||
+ GString *magic = g_string_new ("4,string,ftypmif1");
|
|
||||||
+
|
|
||||||
+ if (heif_have_decoder_for_format (heif_compression_HEVC))
|
|
||||||
+ {
|
|
||||||
+ g_string_append (extensions, "heic,heif");
|
|
||||||
+ g_string_append (mimetypes, "image/heif");
|
|
||||||
+ g_string_append (magic, ",4,string,ftypheic,4,string,ftypheix,"
|
|
||||||
+ "4,string,ftyphevc,4,string,ftypheim,"
|
|
||||||
+ "4,string,ftypheis,4,string,ftyphevm,"
|
|
||||||
+ "4,string,ftyphevs,4,string,ftypmsf1");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
#if LIBHEIF_HAVE_VERSION(1,8,0)
|
|
||||||
- ",4,string,ftypavif"
|
|
||||||
+ if (heif_have_decoder_for_format (heif_compression_AV1))
|
|
||||||
+ {
|
|
||||||
+ g_string_append_printf (extensions, "%savif", extensions->len ? "," : "");
|
|
||||||
+ g_string_append_printf (mimetypes, "%simage/avif", mimetypes->len ? "," : "");
|
|
||||||
+ g_string_append (magic, ",4,string,ftypavif");
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
- );
|
|
||||||
-
|
|
||||||
- gimp_install_procedure (SAVE_PROC,
|
|
||||||
- _("Exports HEIF images"),
|
|
||||||
- _("Save image in HEIF format (High Efficiency "
|
|
||||||
- "Image File Format)."),
|
|
||||||
- "Dirk Farin <farin@struktur.de>",
|
|
||||||
- "Dirk Farin <farin@struktur.de>",
|
|
||||||
- "2018",
|
|
||||||
- _("HEIF/HEIC"),
|
|
||||||
- "RGB*",
|
|
||||||
- GIMP_PLUGIN,
|
|
||||||
- G_N_ELEMENTS (save_args), 0,
|
|
||||||
- save_args, NULL);
|
|
||||||
-
|
|
||||||
- gimp_register_save_handler (SAVE_PROC, "heic,heif", "");
|
|
||||||
- gimp_register_file_handler_mime (SAVE_PROC, "image/heif");
|
|
||||||
- gimp_register_file_handler_uri (SAVE_PROC);
|
|
||||||
+
|
|
||||||
+ gimp_install_procedure (LOAD_PROC,
|
|
||||||
+ _("Loads HEIF images"),
|
|
||||||
+ _("Load image stored in HEIF format (High "
|
|
||||||
+ "Efficiency Image File Format). Typical "
|
|
||||||
+ "suffices for HEIF files are .heif, .heic."),
|
|
||||||
+ "Dirk Farin <farin@struktur.de>",
|
|
||||||
+ "Dirk Farin <farin@struktur.de>",
|
|
||||||
+ "2018",
|
|
||||||
+ _("HEIF/HEIC"),
|
|
||||||
+ NULL,
|
|
||||||
+ GIMP_PLUGIN,
|
|
||||||
+ G_N_ELEMENTS (load_args),
|
|
||||||
+ G_N_ELEMENTS (load_return_vals),
|
|
||||||
+ load_args, load_return_vals);
|
|
||||||
+
|
|
||||||
+ gimp_register_load_handler (LOAD_PROC, extensions->str, "");
|
|
||||||
+ gimp_register_file_handler_mime (LOAD_PROC, mimetypes->str);
|
|
||||||
+ gimp_register_file_handler_uri (LOAD_PROC);
|
|
||||||
+
|
|
||||||
+ gimp_register_magic_load_handler (LOAD_PROC,
|
|
||||||
+ extensions->str, "",
|
|
||||||
+ magic->str);
|
|
||||||
+
|
|
||||||
+ g_string_free (magic, TRUE);
|
|
||||||
+ g_string_free (mimetypes, TRUE);
|
|
||||||
+ g_string_free (extensions, TRUE);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (heif_have_encoder_for_format (heif_compression_HEVC))
|
|
||||||
+ {
|
|
||||||
+ gimp_install_procedure (SAVE_PROC,
|
|
||||||
+ _("Exports HEIF images"),
|
|
||||||
+ _("Save image in HEIF format (High Efficiency "
|
|
||||||
+ "Image File Format)."),
|
|
||||||
+ "Dirk Farin <farin@struktur.de>",
|
|
||||||
+ "Dirk Farin <farin@struktur.de>",
|
|
||||||
+ "2018",
|
|
||||||
+ _("HEIF/HEIC"),
|
|
||||||
+ "RGB*",
|
|
||||||
+ GIMP_PLUGIN,
|
|
||||||
+ G_N_ELEMENTS (save_args), 0,
|
|
||||||
+ save_args, NULL);
|
|
||||||
+
|
|
||||||
+ gimp_register_save_handler (SAVE_PROC, "heic,heif", "");
|
|
||||||
+ gimp_register_file_handler_mime (SAVE_PROC, "image/heif");
|
|
||||||
+ gimp_register_file_handler_uri (SAVE_PROC);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
#if LIBHEIF_HAVE_VERSION(1,8,0)
|
|
||||||
- gimp_install_procedure (SAVE_PROC_AV1,
|
|
||||||
- "Exports AVIF images",
|
|
||||||
- "Save image in AV1 Image File Format (AVIF)",
|
|
||||||
- "Daniel Novomesky <dnovomesky@gmail.com>",
|
|
||||||
- "Daniel Novomesky <dnovomesky@gmail.com>",
|
|
||||||
- "2020",
|
|
||||||
- "HEIF/AVIF",
|
|
||||||
- "RGB*",
|
|
||||||
- GIMP_PLUGIN,
|
|
||||||
- G_N_ELEMENTS (save_args), 0,
|
|
||||||
- save_args, NULL);
|
|
||||||
-
|
|
||||||
- gimp_register_save_handler (SAVE_PROC_AV1, "avif", "");
|
|
||||||
- gimp_register_file_handler_mime (SAVE_PROC_AV1, "image/avif");
|
|
||||||
- gimp_register_file_handler_uri (SAVE_PROC_AV1);
|
|
||||||
+ if (heif_have_encoder_for_format (heif_compression_AV1))
|
|
||||||
+ {
|
|
||||||
+ gimp_install_procedure (SAVE_PROC_AV1,
|
|
||||||
+ _("Exports AVIF images"),
|
|
||||||
+ _("Save image in AV1 Image File Format (AVIF)"),
|
|
||||||
+ "Daniel Novomesky <dnovomesky@gmail.com>",
|
|
||||||
+ "Daniel Novomesky <dnovomesky@gmail.com>",
|
|
||||||
+ "2020",
|
|
||||||
+ "HEIF/AVIF",
|
|
||||||
+ "RGB*",
|
|
||||||
+ GIMP_PLUGIN,
|
|
||||||
+ G_N_ELEMENTS (save_args), 0,
|
|
||||||
+ save_args, NULL);
|
|
||||||
+
|
|
||||||
+ gimp_register_save_handler (SAVE_PROC_AV1, "avif", "");
|
|
||||||
+ gimp_register_file_handler_mime (SAVE_PROC_AV1, "image/avif");
|
|
||||||
+ gimp_register_file_handler_uri (SAVE_PROC_AV1);
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1139,12 +1154,12 @@ load_image (GFile *file,
|
|
||||||
while (new_exif_size >= 4) /*Searching for TIFF Header*/
|
|
||||||
{
|
|
||||||
if (tiffheader[0] == tiffHeaderBE[0] && tiffheader[1] == tiffHeaderBE[1] &&
|
|
||||||
- tiffheader[2] == tiffHeaderBE[2] && tiffheader[2] == tiffHeaderBE[2])
|
|
||||||
+ tiffheader[2] == tiffHeaderBE[2] && tiffheader[3] == tiffHeaderBE[3])
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (tiffheader[0] == tiffHeaderLE[0] && tiffheader[1] == tiffHeaderLE[1] &&
|
|
||||||
- tiffheader[2] == tiffHeaderLE[2] && tiffheader[2] == tiffHeaderLE[2])
|
|
||||||
+ tiffheader[2] == tiffHeaderLE[2] && tiffheader[3] == tiffHeaderLE[3])
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
@@ -1525,6 +1540,17 @@ save_image (GFile *file,
|
|
||||||
heif_encoder_set_lossless (encoder, params->lossless);
|
|
||||||
/* heif_encoder_set_logging_level (encoder, logging_level); */
|
|
||||||
|
|
||||||
+#if LIBHEIF_HAVE_VERSION(1,9,0)
|
|
||||||
+ if (params->lossless && params->save_bit_depth == 8)
|
|
||||||
+ {
|
|
||||||
+ err = heif_encoder_set_parameter_string (encoder, "chroma", "444");
|
|
||||||
+ if (err.code != 0)
|
|
||||||
+ {
|
|
||||||
+ g_printerr ("Failed to set chroma=444 for %s encoder: %s", heif_encoder_get_name (encoder), err.message);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
err = heif_context_encode_image (context,
|
|
||||||
image,
|
|
||||||
encoder,
|
|
||||||
@@ -1984,7 +2010,7 @@ save_dialog (SaveParams *params,
|
|
||||||
frame = gimp_frame_new (NULL);
|
|
||||||
gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0);
|
|
||||||
|
|
||||||
- lossless_button = gtk_check_button_new_with_mnemonic (_("Nearly _lossless (YUV420 format)"));
|
|
||||||
+ lossless_button = gtk_check_button_new_with_mnemonic (_("Nearly _lossless"));
|
|
||||||
gtk_frame_set_label_widget (GTK_FRAME (frame), lossless_button);
|
|
||||||
|
|
||||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
|
|
||||||
@@ -1998,7 +2024,7 @@ save_dialog (SaveParams *params,
|
|
||||||
gtk_range_set_value (GTK_RANGE (quality_slider), params->quality);
|
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lossless_button),
|
|
||||||
params->lossless);
|
|
||||||
- gtk_widget_set_sensitive (quality_slider, !params->lossless);
|
|
||||||
+ gtk_widget_set_sensitive (hbox, !params->lossless);
|
|
||||||
gtk_label_set_mnemonic_widget (GTK_LABEL (label), quality_slider);
|
|
||||||
|
|
||||||
g_signal_connect (lossless_button, "toggled",
|
|
||||||
@@ -2038,8 +2064,8 @@ save_dialog (SaveParams *params,
|
|
||||||
gtk_widget_show (label2);
|
|
||||||
|
|
||||||
combo = gimp_int_combo_box_new (_("8 bit/channel"), 8,
|
|
||||||
- _("10 bit/channel (HDR)"), 10,
|
|
||||||
- _("12 bit/channel (HDR)"), 12,
|
|
||||||
+ _("10 bit/channel"), 10,
|
|
||||||
+ _("12 bit/channel"), 12,
|
|
||||||
NULL);
|
|
||||||
gtk_table_attach (GTK_TABLE (table), combo, 1, 2, 0, 1,
|
|
||||||
GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
|
|
Loading…
x
Reference in New Issue
Block a user