Updated with upstream update
This commit is contained in:
@ -259,13 +259,14 @@ get_extra_channels_count (gushort photomet, gushort spp, gboolean alpha)
|
||||
}
|
||||
|
||||
PikaPDBStatusType
|
||||
load_image (GFile *file,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage **image,
|
||||
gboolean *resolution_loaded,
|
||||
gboolean *profile_loaded,
|
||||
gboolean *ps_metadata_loaded,
|
||||
GError **error)
|
||||
load_image (GFile *file,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage **image,
|
||||
gboolean *resolution_loaded,
|
||||
gboolean *profile_loaded,
|
||||
gboolean *ps_metadata_loaded,
|
||||
PikaProcedureConfig *config,
|
||||
GError **error)
|
||||
{
|
||||
TIFF *tif;
|
||||
TiffSelectedPages pages;
|
||||
@ -300,12 +301,8 @@ load_image (GFile *file,
|
||||
return PIKA_PDB_EXECUTION_ERROR;
|
||||
}
|
||||
|
||||
pages.target = PIKA_PAGE_SELECTOR_TARGET_LAYERS;
|
||||
pika_get_data (LOAD_PROC "-target", &pages.target);
|
||||
|
||||
pages.keep_empty_space = TRUE;
|
||||
pika_get_data (LOAD_PROC "-keep-empty-space",
|
||||
&pages.keep_empty_space);
|
||||
g_object_get (config, "target", &pages.target, NULL);
|
||||
g_object_get (config, "keep-empty-space", &pages.keep_empty_space, NULL);
|
||||
|
||||
pages.n_pages = pages.o_pages = TIFFNumberOfDirectories (tif);
|
||||
if (pages.n_pages == 0)
|
||||
@ -524,11 +521,8 @@ load_image (GFile *file,
|
||||
}
|
||||
}
|
||||
|
||||
pika_set_data (LOAD_PROC "-target",
|
||||
&pages.target, sizeof (pages.target));
|
||||
pika_set_data (LOAD_PROC "-keep-empty-space",
|
||||
&pages.keep_empty_space,
|
||||
sizeof (pages.keep_empty_space));
|
||||
g_object_set (config, "target", pages.target, NULL);
|
||||
g_object_set (config, "keep-empty-space", pages.keep_empty_space, NULL);
|
||||
|
||||
/* We will loop through the all pages in case of multipage TIFF
|
||||
* and load every page as a separate layer.
|
||||
@ -1750,6 +1744,7 @@ load_image (GFile *file,
|
||||
{
|
||||
FILE *fp;
|
||||
GFile *temp_file = NULL;
|
||||
PikaProcedure *procedure;
|
||||
PikaValueArray *return_vals = NULL;
|
||||
|
||||
temp_file = pika_temp_file ("tmp");
|
||||
@ -1766,15 +1761,15 @@ load_image (GFile *file,
|
||||
fwrite (photoshop_data, sizeof (guchar), photoshop_len, fp);
|
||||
fclose (fp);
|
||||
|
||||
return_vals =
|
||||
pika_pdb_run_procedure (pika_get_pdb (),
|
||||
"file-psd-load-metadata",
|
||||
PIKA_TYPE_RUN_MODE, PIKA_RUN_NONINTERACTIVE,
|
||||
G_TYPE_FILE, temp_file,
|
||||
G_TYPE_INT, photoshop_len,
|
||||
PIKA_TYPE_IMAGE, *image,
|
||||
G_TYPE_BOOLEAN, FALSE,
|
||||
G_TYPE_NONE);
|
||||
procedure = pika_pdb_lookup_procedure (pika_get_pdb (),
|
||||
"file-psd-load-metadata");
|
||||
return_vals = pika_procedure_run (procedure,
|
||||
"run-mode", PIKA_RUN_NONINTERACTIVE,
|
||||
"file", temp_file,
|
||||
"size", photoshop_len,
|
||||
"image", *image,
|
||||
"metadata-type", FALSE,
|
||||
NULL);
|
||||
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
g_object_unref (temp_file);
|
||||
@ -1787,6 +1782,7 @@ load_image (GFile *file,
|
||||
{
|
||||
FILE *fp;
|
||||
GFile *temp_file = NULL;
|
||||
PikaProcedure *procedure;
|
||||
PikaValueArray *return_vals = NULL;
|
||||
|
||||
/* Photoshop metadata starts with 'Adobe Photoshop Document Data Block'
|
||||
@ -1808,16 +1804,16 @@ load_image (GFile *file,
|
||||
fwrite (photoshop_data, sizeof (guchar), photoshop_len, fp);
|
||||
fclose (fp);
|
||||
|
||||
return_vals =
|
||||
pika_pdb_run_procedure (pika_get_pdb (),
|
||||
"file-psd-load-metadata",
|
||||
PIKA_TYPE_RUN_MODE, run_mode,
|
||||
G_TYPE_FILE, temp_file,
|
||||
G_TYPE_INT, photoshop_len,
|
||||
PIKA_TYPE_IMAGE, *image,
|
||||
G_TYPE_BOOLEAN, TRUE,
|
||||
G_TYPE_BOOLEAN, is_cmyk,
|
||||
G_TYPE_NONE);
|
||||
procedure = pika_pdb_lookup_procedure (pika_get_pdb (),
|
||||
"file-psd-load-metadata");
|
||||
return_vals = pika_procedure_run (procedure,
|
||||
"run-mode", run_mode,
|
||||
"file", temp_file,
|
||||
"size", photoshop_len,
|
||||
"image", *image,
|
||||
"metadata-type", TRUE,
|
||||
"cmyk", is_cmyk,
|
||||
NULL);
|
||||
|
||||
g_file_delete (temp_file, NULL, NULL);
|
||||
g_object_unref (temp_file);
|
||||
|
@ -46,13 +46,14 @@ typedef struct
|
||||
} TiffSelectedPages;
|
||||
|
||||
|
||||
PikaPDBStatusType load_image (GFile *file,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage **image,
|
||||
gboolean *resolution_loaded,
|
||||
gboolean *profile_loaded,
|
||||
gboolean *ps_metadata_loaded,
|
||||
GError **error);
|
||||
PikaPDBStatusType load_image (GFile *file,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage **image,
|
||||
gboolean *resolution_loaded,
|
||||
gboolean *profile_loaded,
|
||||
gboolean *ps_metadata_loaded,
|
||||
PikaProcedureConfig *config,
|
||||
GError **error);
|
||||
|
||||
|
||||
#endif /* __FILE_TIFF_LOAD_H__ */
|
||||
|
@ -324,7 +324,6 @@ save_layer (TIFF *tif,
|
||||
gboolean config_cmyk;
|
||||
|
||||
g_object_get (config,
|
||||
"compression", &config_compression,
|
||||
"pika-comment", &config_comment,
|
||||
"save-comment", &config_save_comment,
|
||||
"save-transparent-pixels", &config_save_transp_pixels,
|
||||
@ -333,6 +332,7 @@ save_layer (TIFF *tif,
|
||||
"cmyk", &config_cmyk,
|
||||
NULL);
|
||||
|
||||
config_compression = pika_procedure_config_get_choice_id (PIKA_PROCEDURE_CONFIG (config), "compression");
|
||||
compression = pika_compression_to_tiff_compression (config_compression);
|
||||
|
||||
layer_name = pika_item_get_name (PIKA_ITEM (layer));
|
||||
@ -693,7 +693,7 @@ save_layer (TIFF *tif,
|
||||
TIFFSetField (tif, TIFFTAG_ICCPROFILE, icc_length, icc_data);
|
||||
|
||||
g_object_unref (profile);
|
||||
g_object_unref (cmyk_profile);
|
||||
g_clear_object (&cmyk_profile);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1221,48 +1221,6 @@ out:
|
||||
return status;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
combo_sensitivity_func (gint value,
|
||||
gpointer data)
|
||||
{
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
|
||||
model = gtk_combo_box_get_model (GTK_COMBO_BOX (data));
|
||||
|
||||
if (pika_int_store_lookup_by_value (model, value, &iter))
|
||||
{
|
||||
gpointer insensitive;
|
||||
|
||||
gtk_tree_model_get (model, &iter,
|
||||
PIKA_INT_STORE_USER_DATA, &insensitive,
|
||||
-1);
|
||||
|
||||
return ! GPOINTER_TO_INT (insensitive);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
combo_set_item_sensitive (GtkWidget *widget,
|
||||
gint value,
|
||||
gboolean sensitive)
|
||||
{
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
|
||||
model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
|
||||
|
||||
if (pika_int_store_lookup_by_value (model, value, &iter))
|
||||
{
|
||||
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
|
||||
PIKA_INT_STORE_USER_DATA,
|
||||
! GINT_TO_POINTER (sensitive),
|
||||
-1);
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
save_dialog (PikaImage *image,
|
||||
PikaProcedure *procedure,
|
||||
@ -1273,17 +1231,22 @@ save_dialog (PikaImage *image,
|
||||
gboolean is_multi_layer,
|
||||
gboolean classic_tiff_failed)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkListStore *store;
|
||||
GtkWidget *combo;
|
||||
GtkWidget *profile_label;
|
||||
gchar **parasites;
|
||||
PikaCompression compression;
|
||||
gboolean run;
|
||||
gboolean has_geotiff = FALSE;
|
||||
gint i;
|
||||
PikaColorProfile *cmyk_profile = NULL;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *profile_label;
|
||||
gchar **parasites;
|
||||
PikaCompression compression;
|
||||
gboolean run;
|
||||
gboolean has_geotiff = FALSE;
|
||||
gint i;
|
||||
PikaColorProfile *cmyk_profile = NULL;
|
||||
GParamSpec *comp_spec;
|
||||
PikaParamSpecChoice *cspec;
|
||||
|
||||
comp_spec = g_object_class_find_property (G_OBJECT_GET_CLASS (config), "compression");
|
||||
cspec = PIKA_PARAM_SPEC_CHOICE (comp_spec);
|
||||
pika_choice_set_sensitive (cspec->choice, "ccittfax3", is_monochrome);
|
||||
pika_choice_set_sensitive (cspec->choice, "ccittfax4", is_monochrome);
|
||||
pika_choice_set_sensitive (cspec->choice, "jpeg", ! is_indexed);
|
||||
|
||||
parasites = pika_image_get_parasite_list (image);
|
||||
for (i = 0; i < g_strv_length (parasites); i++)
|
||||
@ -1311,32 +1274,14 @@ save_dialog (PikaImage *image,
|
||||
"Retry as BigTIFF or with a different compression algorithm, "
|
||||
"or cancel."));
|
||||
label = pika_procedure_dialog_get_label (PIKA_PROCEDURE_DIALOG (dialog),
|
||||
"big-tif-warning", text);
|
||||
"big-tif-warning", text,
|
||||
FALSE, FALSE);
|
||||
g_free (text);
|
||||
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
|
||||
gtk_label_set_line_wrap_mode (GTK_LABEL (label), PANGO_WRAP_WORD);
|
||||
gtk_label_set_max_width_chars (GTK_LABEL (label), 60);
|
||||
}
|
||||
|
||||
store =
|
||||
pika_int_store_new (_("None"), PIKA_COMPRESSION_NONE,
|
||||
_("LZW"), PIKA_COMPRESSION_LZW,
|
||||
_("Pack Bits"), PIKA_COMPRESSION_PACKBITS,
|
||||
_("Deflate"), PIKA_COMPRESSION_ADOBE_DEFLATE,
|
||||
_("JPEG"), PIKA_COMPRESSION_JPEG,
|
||||
_("CCITT Group 3 fax"), PIKA_COMPRESSION_CCITTFAX3,
|
||||
_("CCITT Group 4 fax"), PIKA_COMPRESSION_CCITTFAX4,
|
||||
NULL);
|
||||
combo = pika_procedure_dialog_get_int_combo (PIKA_PROCEDURE_DIALOG (dialog),
|
||||
"compression", PIKA_INT_STORE (store));
|
||||
combo = pika_label_int_widget_get_widget (PIKA_LABEL_INT_WIDGET (combo));
|
||||
pika_int_combo_box_set_sensitivity (PIKA_INT_COMBO_BOX (combo),
|
||||
combo_sensitivity_func,
|
||||
combo, NULL);
|
||||
combo_set_item_sensitive (combo, PIKA_COMPRESSION_CCITTFAX3, is_monochrome);
|
||||
combo_set_item_sensitive (combo, PIKA_COMPRESSION_CCITTFAX4, is_monochrome);
|
||||
combo_set_item_sensitive (combo, PIKA_COMPRESSION_JPEG, ! is_indexed);
|
||||
|
||||
pika_procedure_dialog_fill_frame (PIKA_PROCEDURE_DIALOG (dialog),
|
||||
"layers-frame", "save-layers", FALSE,
|
||||
"crop-layers");
|
||||
@ -1359,7 +1304,8 @@ save_dialog (PikaImage *image,
|
||||
|
||||
/* Profile label. */
|
||||
profile_label = pika_procedure_dialog_get_label (PIKA_PROCEDURE_DIALOG (dialog),
|
||||
"profile-label", _("No soft-proofing profile"));
|
||||
"profile-label", _("No soft-proofing profile"),
|
||||
FALSE, FALSE);
|
||||
gtk_label_set_xalign (GTK_LABEL (profile_label), 0.0);
|
||||
gtk_label_set_ellipsize (GTK_LABEL (profile_label), PANGO_ELLIPSIZE_END);
|
||||
pika_label_set_attributes (GTK_LABEL (profile_label),
|
||||
@ -1419,27 +1365,17 @@ save_dialog (PikaImage *image,
|
||||
"cmyk-frame",
|
||||
NULL);
|
||||
|
||||
g_object_get (config,
|
||||
"compression", &compression,
|
||||
NULL);
|
||||
compression = pika_procedure_config_get_choice_id (PIKA_PROCEDURE_CONFIG (config), "compression");
|
||||
|
||||
if (! is_monochrome)
|
||||
{
|
||||
if (compression == PIKA_COMPRESSION_CCITTFAX3 ||
|
||||
compression == PIKA_COMPRESSION_CCITTFAX4)
|
||||
{
|
||||
compression = PIKA_COMPRESSION_NONE;
|
||||
}
|
||||
g_object_set (config, "compression", "none", NULL);
|
||||
}
|
||||
|
||||
if (is_indexed && compression == PIKA_COMPRESSION_JPEG)
|
||||
{
|
||||
compression = PIKA_COMPRESSION_NONE;
|
||||
}
|
||||
|
||||
g_object_set (config,
|
||||
"compression", compression,
|
||||
NULL);
|
||||
g_object_set (config, "compression", "none", NULL);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
|
||||
|
@ -76,37 +76,40 @@ struct _TiffClass
|
||||
|
||||
|
||||
#define TIFF_TYPE (tiff_get_type ())
|
||||
#define TIFF (obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TIFF_TYPE, Tiff))
|
||||
#define TIFF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TIFF_TYPE, Tiff))
|
||||
|
||||
GType tiff_get_type (void) G_GNUC_CONST;
|
||||
|
||||
static GList * tiff_query_procedures (PikaPlugIn *plug_in);
|
||||
static PikaProcedure * tiff_create_procedure (PikaPlugIn *plug_in,
|
||||
const gchar *name);
|
||||
static GList * tiff_query_procedures (PikaPlugIn *plug_in);
|
||||
static PikaProcedure * tiff_create_procedure (PikaPlugIn *plug_in,
|
||||
const gchar *name);
|
||||
|
||||
static PikaValueArray * tiff_load (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
GFile *file,
|
||||
const PikaValueArray *args,
|
||||
gpointer run_data);
|
||||
static PikaValueArray * tiff_save (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage *image,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
GFile *file,
|
||||
const PikaValueArray *args,
|
||||
gpointer run_data);
|
||||
static PikaPDBStatusType tiff_save_rec (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage *orig_image,
|
||||
gint n_orig_drawables,
|
||||
PikaDrawable **orig_drawables,
|
||||
GFile *file,
|
||||
PikaProcedureConfig *config,
|
||||
PikaMetadata *metadata,
|
||||
gboolean retried,
|
||||
GError **error);
|
||||
static PikaValueArray * tiff_load (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
GFile *file,
|
||||
PikaMetadata *metadata,
|
||||
PikaMetadataLoadFlags *flags,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static PikaValueArray * tiff_save (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage *image,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
GFile *file,
|
||||
PikaMetadata *metadata,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data);
|
||||
static PikaPDBStatusType tiff_save_rec (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
PikaImage *orig_image,
|
||||
gint n_orig_drawables,
|
||||
PikaDrawable **orig_drawables,
|
||||
GFile *file,
|
||||
PikaProcedureConfig *config,
|
||||
PikaMetadata *metadata,
|
||||
gboolean retried,
|
||||
GError **error);
|
||||
|
||||
static gboolean image_is_monochrome (PikaImage *image);
|
||||
static gboolean image_is_multi_layer (PikaImage *image);
|
||||
@ -176,12 +179,29 @@ tiff_create_procedure (PikaPlugIn *plug_in,
|
||||
"tif,tiff");
|
||||
pika_file_procedure_set_magics (PIKA_FILE_PROCEDURE (procedure),
|
||||
"0,string,II*\\0,0,string,MM\\0*");
|
||||
|
||||
/* TODO: the 2 below AUX arguments should likely be real arguments, but I
|
||||
* just wanted to get rid of pika_get_data/pika_set_data() usage at first
|
||||
* and didn't dig much into proper and full usage. Since it's always
|
||||
* possible to add arguments, but not to remove them, I prefer to make
|
||||
* them AUX for now and leave it as further exercise to decide whether it
|
||||
* should be part of the PDB API.
|
||||
*/
|
||||
PIKA_PROC_AUX_ARG_ENUM (procedure, "target",
|
||||
"Open _pages as", NULL,
|
||||
PIKA_TYPE_PAGE_SELECTOR_TARGET,
|
||||
PIKA_PAGE_SELECTOR_TARGET_LAYERS,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
PIKA_PROC_AUX_ARG_BOOLEAN (procedure, "keep-empty-space",
|
||||
_("_Keep empty space around imported layers"),
|
||||
NULL, TRUE, PIKA_PARAM_READWRITE);
|
||||
}
|
||||
else if (! strcmp (name, SAVE_PROC))
|
||||
{
|
||||
procedure = pika_save_procedure_new (plug_in, name,
|
||||
PIKA_PDB_PROC_TYPE_PLUGIN,
|
||||
tiff_save, NULL, NULL);
|
||||
TRUE, tiff_save, NULL, NULL);
|
||||
|
||||
pika_procedure_set_image_types (procedure, "*");
|
||||
|
||||
@ -214,13 +234,18 @@ tiff_create_procedure (PikaPlugIn *plug_in,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
PIKA_PROC_ARG_INT (procedure, "compression",
|
||||
_("Co_mpression"),
|
||||
_("Compression type: { NONE (0), LZW (1), PACKBITS (2), "
|
||||
"DEFLATE (3), JPEG (4), CCITT G3 Fax (5), "
|
||||
"CCITT G4 Fax (6) }"),
|
||||
0, 6, 0,
|
||||
G_PARAM_READWRITE);
|
||||
PIKA_PROC_ARG_CHOICE (procedure, "compression",
|
||||
_("Co_mpression"),
|
||||
_("Compression type"),
|
||||
pika_choice_new_with_values ("none", PIKA_COMPRESSION_NONE, _("None"), NULL,
|
||||
"lzw", PIKA_COMPRESSION_LZW, _("LZW"), NULL,
|
||||
"packbits", PIKA_COMPRESSION_PACKBITS, _("Pack Bits"), NULL,
|
||||
"adobe_deflate", PIKA_COMPRESSION_ADOBE_DEFLATE, _("Deflate"), NULL,
|
||||
"jpeg", PIKA_COMPRESSION_JPEG, _("JPEG"), NULL,
|
||||
"ccittfax3", PIKA_COMPRESSION_CCITTFAX3, _("CCITT Group 3 fax"), NULL,
|
||||
"ccittfax4", PIKA_COMPRESSION_CCITTFAX4, _("CCITT Group 4 fax"), NULL,
|
||||
NULL),
|
||||
"none", G_PARAM_READWRITE);
|
||||
|
||||
PIKA_PROC_ARG_BOOLEAN (procedure, "save-transparent-pixels",
|
||||
_("Save color _values from transparent pixels"),
|
||||
@ -267,11 +292,13 @@ tiff_create_procedure (PikaPlugIn *plug_in,
|
||||
}
|
||||
|
||||
static PikaValueArray *
|
||||
tiff_load (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
GFile *file,
|
||||
const PikaValueArray *args,
|
||||
gpointer run_data)
|
||||
tiff_load (PikaProcedure *procedure,
|
||||
PikaRunMode run_mode,
|
||||
GFile *file,
|
||||
PikaMetadata *metadata,
|
||||
PikaMetadataLoadFlags *flags,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
PikaValueArray *return_vals;
|
||||
PikaPDBStatusType status;
|
||||
@ -279,7 +306,6 @@ tiff_load (PikaProcedure *procedure,
|
||||
gboolean resolution_loaded = FALSE;
|
||||
gboolean profile_loaded = FALSE;
|
||||
gboolean ps_metadata_loaded = FALSE;
|
||||
PikaMetadata *metadata;
|
||||
GError *error = NULL;
|
||||
|
||||
gegl_init (NULL, NULL);
|
||||
@ -291,30 +317,16 @@ tiff_load (PikaProcedure *procedure,
|
||||
&resolution_loaded,
|
||||
&profile_loaded,
|
||||
&ps_metadata_loaded,
|
||||
&error);
|
||||
config, &error);
|
||||
|
||||
if (!image)
|
||||
return pika_procedure_new_return_values (procedure, status, error);
|
||||
|
||||
metadata = pika_image_metadata_load_prepare (image,
|
||||
"image/tiff",
|
||||
file, NULL);
|
||||
if (resolution_loaded)
|
||||
*flags &= ~PIKA_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
PikaMetadataLoadFlags flags = PIKA_METADATA_LOAD_ALL;
|
||||
|
||||
if (resolution_loaded)
|
||||
flags &= ~PIKA_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
if (profile_loaded)
|
||||
flags &= ~PIKA_METADATA_LOAD_COLORSPACE;
|
||||
|
||||
pika_image_metadata_load_finish (image, "image/tiff",
|
||||
metadata, flags);
|
||||
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
if (profile_loaded)
|
||||
*flags &= ~PIKA_METADATA_LOAD_COLORSPACE;
|
||||
|
||||
return_vals = pika_procedure_new_return_values (procedure,
|
||||
PIKA_PDB_SUCCESS,
|
||||
@ -332,20 +344,15 @@ tiff_save (PikaProcedure *procedure,
|
||||
gint n_drawables,
|
||||
PikaDrawable **drawables,
|
||||
GFile *file,
|
||||
const PikaValueArray *args,
|
||||
PikaMetadata *metadata,
|
||||
PikaProcedureConfig *config,
|
||||
gpointer run_data)
|
||||
{
|
||||
PikaProcedureConfig *config;
|
||||
PikaMetadata *metadata;
|
||||
GError *error = NULL;
|
||||
PikaPDBStatusType status = PIKA_PDB_SUCCESS;
|
||||
GError *error = NULL;
|
||||
PikaPDBStatusType status = PIKA_PDB_SUCCESS;
|
||||
|
||||
gegl_init (NULL, NULL);
|
||||
|
||||
config = pika_procedure_create_config (procedure);
|
||||
metadata = pika_procedure_config_begin_export (config, image, run_mode,
|
||||
args, "image/tiff");
|
||||
|
||||
switch (run_mode)
|
||||
{
|
||||
case PIKA_RUN_INTERACTIVE:
|
||||
@ -360,9 +367,6 @@ tiff_save (PikaProcedure *procedure,
|
||||
n_drawables, drawables,
|
||||
file, config, metadata, FALSE, &error);
|
||||
|
||||
pika_procedure_config_end_export (config, image, file, status);
|
||||
g_object_unref (config);
|
||||
|
||||
return pika_procedure_new_return_values (procedure, status, error);
|
||||
}
|
||||
|
||||
@ -410,10 +414,10 @@ tiff_save_rec (PikaProcedure *procedure,
|
||||
|
||||
g_object_get (config,
|
||||
"bigtiff", &bigtiff,
|
||||
"compression", &compression,
|
||||
"save-layers", &save_layers,
|
||||
"crop-layers", &crop_layers,
|
||||
NULL);
|
||||
compression = pika_procedure_config_get_choice_id (config, "compression");
|
||||
|
||||
if (compression == PIKA_COMPRESSION_CCITTFAX3 ||
|
||||
compression == PIKA_COMPRESSION_CCITTFAX4)
|
||||
|
Reference in New Issue
Block a user