Updated with upstream update
This commit is contained in:
@ -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),
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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__ */
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user