Updated with upstream update

This commit is contained in:
2023-10-30 15:55:30 -07:00
parent 098531073c
commit 3bbdd873ef
584 changed files with 91827 additions and 70362 deletions

View File

@ -108,7 +108,8 @@ save_dialog (PikaImage *image,
/* Create frame for additional features like Sharp YUV */
pika_procedure_dialog_get_label (PIKA_PROCEDURE_DIALOG (dialog),
"advanced-title", _("Advanced Options"));
"advanced-title", _("Advanced Options"),
FALSE, FALSE);
pika_procedure_dialog_set_sensitive (PIKA_PROCEDURE_DIALOG (dialog),
"use-sharp-yuv",
@ -128,7 +129,8 @@ save_dialog (PikaImage *image,
/* Hint for some special values of keyframe-distance. */
label_kf = pika_procedure_dialog_get_label (PIKA_PROCEDURE_DIALOG (dialog),
"keyframe-hint", NULL);
"keyframe-hint", NULL,
FALSE, FALSE);
gtk_label_set_xalign (GTK_LABEL (label_kf), 1.0);
gtk_label_set_ellipsize (GTK_LABEL (label_kf), PANGO_ELLIPSIZE_END);
pika_label_set_attributes (GTK_LABEL (label_kf),

View File

@ -77,9 +77,10 @@ create_layer (PikaImage *image,
}
PikaImage *
load_image (GFile *file,
gboolean interactive,
GError **error)
load_image (GFile *file,
gboolean interactive,
PikaMetadataLoadFlags *metadata_flags,
GError **error)
{
uint8_t *indata = NULL;
gsize indatalen;
@ -92,8 +93,6 @@ load_image (GFile *file,
uint32_t flags;
gboolean animation = FALSE;
gboolean icc = FALSE;
gboolean exif = FALSE;
gboolean xmp = FALSE;
/* Attempt to read the file contents from disk */
if (! g_file_get_contents (g_file_peek_path (file),
@ -130,12 +129,6 @@ load_image (GFile *file,
if (flags & ICCP_FLAG)
icc = TRUE;
if (flags & EXIF_FLAG)
exif = TRUE;
if (flags & XMP_FLAG)
xmp = TRUE;
/* TODO: decode the image in "chunks" or "tiles" */
/* TODO: check if an alpha channel is present */
@ -251,38 +244,8 @@ load_image (GFile *file,
/* Free the original compressed data */
g_free (indata);
if (exif || xmp)
{
PikaMetadata *metadata;
if (exif)
{
WebPData exif;
WebPMuxGetChunk (mux, "EXIF", &exif);
}
if (xmp)
{
WebPData xmp;
WebPMuxGetChunk (mux, "XMP ", &xmp);
}
metadata = pika_image_metadata_load_prepare (image, "image/webp",
file, NULL);
if (metadata)
{
PikaMetadataLoadFlags flags = PIKA_METADATA_LOAD_ALL;
if (profile)
flags &= ~PIKA_METADATA_LOAD_COLORSPACE;
pika_image_metadata_load_finish (image, "image/webp",
metadata, flags);
g_object_unref (metadata);
}
}
if (profile)
*metadata_flags &= ~PIKA_METADATA_LOAD_COLORSPACE;
WebPMuxDelete (mux);

View File

@ -27,9 +27,10 @@
#define __WEBP_LOAD_H__
PikaImage * load_image (GFile *file,
gboolean interactive,
GError **error);
PikaImage * load_image (GFile *file,
gboolean interactive,
PikaMetadataLoadFlags *flags,
GError **error);
#endif /* __WEBP_LOAD_H__ */

View File

@ -55,27 +55,30 @@ struct _WebpClass
#define WEBP_TYPE (webp_get_type ())
#define WEBP (obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBP_TYPE, Webp))
#define WEBP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEBP_TYPE, Webp))
GType webp_get_type (void) G_GNUC_CONST;
static GList * webp_query_procedures (PikaPlugIn *plug_in);
static PikaProcedure * webp_create_procedure (PikaPlugIn *plug_in,
const gchar *name);
static GList * webp_query_procedures (PikaPlugIn *plug_in);
static PikaProcedure * webp_create_procedure (PikaPlugIn *plug_in,
const gchar *name);
static PikaValueArray * webp_load (PikaProcedure *procedure,
PikaRunMode run_mode,
GFile *file,
const PikaValueArray *args,
gpointer run_data);
static PikaValueArray * webp_save (PikaProcedure *procedure,
PikaRunMode run_mode,
PikaImage *image,
gint n_drawables,
PikaDrawable **drawables,
GFile *file,
const PikaValueArray *args,
gpointer run_data);
static PikaValueArray * webp_load (PikaProcedure *procedure,
PikaRunMode run_mode,
GFile *file,
PikaMetadata *metadata,
PikaMetadataLoadFlags *flags,
PikaProcedureConfig *config,
gpointer run_data);
static PikaValueArray * webp_save (PikaProcedure *procedure,
PikaRunMode run_mode,
PikaImage *image,
gint n_drawables,
PikaDrawable **drawables,
GFile *file,
PikaMetadata *metadata,
PikaProcedureConfig *config,
gpointer run_data);
G_DEFINE_TYPE (Webp, webp, PIKA_TYPE_PLUG_IN)
@ -145,7 +148,7 @@ webp_create_procedure (PikaPlugIn *plug_in,
{
procedure = pika_save_procedure_new (plug_in, name,
PIKA_PDB_PROC_TYPE_PLUGIN,
webp_save, NULL, NULL);
TRUE, webp_save, NULL, NULL);
pika_procedure_set_image_types (procedure, "*");
@ -250,11 +253,13 @@ webp_create_procedure (PikaPlugIn *plug_in,
}
static PikaValueArray *
webp_load (PikaProcedure *procedure,
PikaRunMode run_mode,
GFile *file,
const PikaValueArray *args,
gpointer run_data)
webp_load (PikaProcedure *procedure,
PikaRunMode run_mode,
GFile *file,
PikaMetadata *metadata,
PikaMetadataLoadFlags *flags,
PikaProcedureConfig *config,
gpointer run_data)
{
PikaValueArray *return_vals;
PikaImage *image;
@ -262,7 +267,7 @@ webp_load (PikaProcedure *procedure,
gegl_init (NULL, NULL);
image = load_image (file, FALSE, &error);
image = load_image (file, FALSE, flags, &error);
if (! image)
return pika_procedure_new_return_values (procedure,
@ -285,22 +290,17 @@ webp_save (PikaProcedure *procedure,
gint n_drawables,
PikaDrawable **drawables,
GFile *file,
const PikaValueArray *args,
PikaMetadata *metadata,
PikaProcedureConfig *config,
gpointer run_data)
{
PikaProcedureConfig *config;
PikaPDBStatusType status = PIKA_PDB_SUCCESS;
PikaExportReturn export = PIKA_EXPORT_CANCEL;
PikaMetadata *metadata;
gboolean animation;
GError *error = NULL;
PikaPDBStatusType status = PIKA_PDB_SUCCESS;
PikaExportReturn export = PIKA_EXPORT_CANCEL;
gboolean animation;
GError *error = NULL;
gegl_init (NULL, NULL);
config = pika_procedure_create_config (procedure);
metadata = pika_procedure_config_begin_export (config, image, run_mode,
args, "image/webp");
if (run_mode == PIKA_RUN_INTERACTIVE ||
run_mode == PIKA_RUN_WITH_LAST_VALS)
pika_ui_init (PLUG_IN_BINARY);
@ -379,9 +379,6 @@ webp_save (PikaProcedure *procedure,
pika_metadata_set_bits_per_sample (metadata, 8);
}
pika_procedure_config_end_export (config, image, file, status);
g_object_unref (config);
if (export == PIKA_EXPORT_EXPORT)
{
pika_image_delete (image);