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>
|
||||
|
||||
|
12
gimp.spec
12
gimp.spec
@ -31,7 +31,7 @@
|
||||
%bcond_without python_plugin
|
||||
%endif
|
||||
Name: gimp
|
||||
Version: 2.10.22
|
||||
Version: 2.10.24
|
||||
Release: 0
|
||||
Summary: The GNU Image Manipulation Program
|
||||
License: GPL-3.0-or-later
|
||||
@ -42,10 +42,6 @@ Source1: macros.gimp
|
||||
# openSUSE palette file
|
||||
Source2: openSUSE.gpl
|
||||
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: alsa-devel >= 1.0.0
|
||||
@ -77,7 +73,7 @@ BuildRequires: pkgconfig(cairo) >= 1.12.2
|
||||
BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2
|
||||
BuildRequires: pkgconfig(dbus-glib-1) >= 0.70
|
||||
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(glib-2.0) >= 2.54.2
|
||||
BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.32
|
||||
@ -114,7 +110,7 @@ BuildRequires: xdg-utils
|
||||
# obs does not automaticaly add this
|
||||
Requires: libglib-2_0-0 >= 2.54.2
|
||||
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
|
||||
Requires: libgimp-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
|
||||
%setup -q
|
||||
%patch -p1
|
||||
%patch1 -p1
|
||||
|
||||
export LC_ALL=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