Revert "New GimpMetadata as subclass of GExiv2Metadata"
This reverts commit 3ab08c8bfd
.
|
@ -853,15 +853,14 @@ gimp_undo_type_get_type (void)
|
|||
{ GIMP_UNDO_IMAGE_SIZE, "GIMP_UNDO_IMAGE_SIZE", "image-size" },
|
||||
{ GIMP_UNDO_IMAGE_RESOLUTION, "GIMP_UNDO_IMAGE_RESOLUTION", "image-resolution" },
|
||||
{ GIMP_UNDO_IMAGE_GRID, "GIMP_UNDO_IMAGE_GRID", "image-grid" },
|
||||
{ GIMP_UNDO_IMAGE_METADATA, "GIMP_UNDO_IMAGE_METADATA", "image-metadata" },
|
||||
{ GIMP_UNDO_IMAGE_COLORMAP, "GIMP_UNDO_IMAGE_COLORMAP", "image-colormap" },
|
||||
{ GIMP_UNDO_IMAGE_COLOR_MANAGED, "GIMP_UNDO_IMAGE_COLOR_MANAGED", "image-color-managed" },
|
||||
{ GIMP_UNDO_IMAGE_METADATA, "GIMP_UNDO_IMAGE_METADATA", "image-metadata" },
|
||||
{ GIMP_UNDO_GUIDE, "GIMP_UNDO_GUIDE", "guide" },
|
||||
{ GIMP_UNDO_SAMPLE_POINT, "GIMP_UNDO_SAMPLE_POINT", "sample-point" },
|
||||
{ GIMP_UNDO_DRAWABLE, "GIMP_UNDO_DRAWABLE", "drawable" },
|
||||
{ GIMP_UNDO_DRAWABLE_MOD, "GIMP_UNDO_DRAWABLE_MOD", "drawable-mod" },
|
||||
{ GIMP_UNDO_MASK, "GIMP_UNDO_MASK", "mask" },
|
||||
{ GIMP_UNDO_ITEM_METADATA, "GIMP_UNDO_ITEM_METADATA", "item-metadata" },
|
||||
{ GIMP_UNDO_ITEM_REORDER, "GIMP_UNDO_ITEM_REORDER", "item-reorder" },
|
||||
{ GIMP_UNDO_ITEM_RENAME, "GIMP_UNDO_ITEM_RENAME", "item-rename" },
|
||||
{ GIMP_UNDO_ITEM_DISPLACE, "GIMP_UNDO_ITEM_DISPLACE", "item-displace" },
|
||||
|
@ -947,15 +946,14 @@ gimp_undo_type_get_type (void)
|
|||
{ GIMP_UNDO_IMAGE_SIZE, NC_("undo-type", "Image size"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_RESOLUTION, NC_("undo-type", "Image resolution change"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_GRID, NC_("undo-type", "Grid"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_METADATA, NC_("undo-type", "Change metadata"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_COLORMAP, NC_("undo-type", "Change indexed palette"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_COLOR_MANAGED, NC_("undo-type", "Change color managed state"), NULL },
|
||||
{ GIMP_UNDO_IMAGE_METADATA, "GIMP_UNDO_IMAGE_METADATA", NULL },
|
||||
{ GIMP_UNDO_GUIDE, NC_("undo-type", "Guide"), NULL },
|
||||
{ GIMP_UNDO_SAMPLE_POINT, NC_("undo-type", "Sample Point"), NULL },
|
||||
{ GIMP_UNDO_DRAWABLE, NC_("undo-type", "Layer/Channel"), NULL },
|
||||
{ GIMP_UNDO_DRAWABLE_MOD, NC_("undo-type", "Layer/Channel modification"), NULL },
|
||||
{ GIMP_UNDO_MASK, NC_("undo-type", "Selection mask"), NULL },
|
||||
{ GIMP_UNDO_ITEM_METADATA, "GIMP_UNDO_ITEM_METADATA", NULL },
|
||||
{ GIMP_UNDO_ITEM_REORDER, NC_("undo-type", "Reorder item"), NULL },
|
||||
{ GIMP_UNDO_ITEM_RENAME, NC_("undo-type", "Rename item"), NULL },
|
||||
{ GIMP_UNDO_ITEM_DISPLACE, NC_("undo-type", "Move item"), NULL },
|
||||
|
|
|
@ -425,15 +425,14 @@ typedef enum /*< pdb-skip >*/
|
|||
GIMP_UNDO_IMAGE_SIZE, /*< desc="Image size" >*/
|
||||
GIMP_UNDO_IMAGE_RESOLUTION, /*< desc="Image resolution change" >*/
|
||||
GIMP_UNDO_IMAGE_GRID, /*< desc="Grid" >*/
|
||||
GIMP_UNDO_IMAGE_METADATA, /*< desc="Change metadata" >*/
|
||||
GIMP_UNDO_IMAGE_COLORMAP, /*< desc="Change indexed palette" >*/
|
||||
GIMP_UNDO_IMAGE_COLOR_MANAGED, /*< desc="Change color managed state" >*/
|
||||
GIMP_UNDO_IMAGE_METADATA, /*< desc="Change metadata >*/
|
||||
GIMP_UNDO_GUIDE, /*< desc="Guide" >*/
|
||||
GIMP_UNDO_SAMPLE_POINT, /*< desc="Sample Point" >*/
|
||||
GIMP_UNDO_DRAWABLE, /*< desc="Layer/Channel" >*/
|
||||
GIMP_UNDO_DRAWABLE_MOD, /*< desc="Layer/Channel modification" >*/
|
||||
GIMP_UNDO_MASK, /*< desc="Selection mask" >*/
|
||||
GIMP_UNDO_ITEM_METADATA, /*< desc="Change metadata >*/
|
||||
GIMP_UNDO_ITEM_REORDER, /*< desc="Reorder item" >*/
|
||||
GIMP_UNDO_ITEM_RENAME, /*< desc="Rename item" >*/
|
||||
GIMP_UNDO_ITEM_DISPLACE, /*< desc="Move item" >*/
|
||||
|
|
|
@ -157,7 +157,6 @@ typedef struct _GimpGroupLayer GimpGroupLayer;
|
|||
typedef struct _GimpUndo GimpUndo;
|
||||
typedef struct _GimpUndoStack GimpUndoStack;
|
||||
typedef struct _GimpUndoAccumulator GimpUndoAccumulator;
|
||||
typedef struct _GimpViewableUndo GimpViewableUndo;
|
||||
|
||||
|
||||
/* Symmetry transformations */
|
||||
|
|
|
@ -38,8 +38,6 @@
|
|||
#include "plug-in/gimppluginmanager.h"
|
||||
#include "plug-in/gimppluginmanager-restore.h"
|
||||
|
||||
#include "gui/gimpdbusservice-generated.h"
|
||||
|
||||
#include "paint/gimp-paint.h"
|
||||
|
||||
#include "text/gimp-fonts.h"
|
||||
|
|
|
@ -40,9 +40,7 @@
|
|||
#include "gimpgrouplayer.h"
|
||||
#include "gimpimage.h"
|
||||
#include "gimpimage-merge.h"
|
||||
#include "gimpimage-metadata.h"
|
||||
#include "gimpimage-undo.h"
|
||||
#include "gimpitem.h"
|
||||
#include "gimpitemstack.h"
|
||||
#include "gimplayer-floating-selection.h"
|
||||
#include "gimplayer-new.h"
|
||||
|
@ -430,7 +428,6 @@ gimp_image_merge_layers (GimpImage *image,
|
|||
GimpLayer *layer;
|
||||
GimpLayer *bottom_layer;
|
||||
GimpParasiteList *parasites;
|
||||
GimpMetadata *metadata;
|
||||
gint count;
|
||||
gint x1, y1, x2, y2;
|
||||
gint off_x, off_y;
|
||||
|
@ -588,22 +585,6 @@ gimp_image_merge_layers (GimpImage *image,
|
|||
|
||||
bottom_layer = layer;
|
||||
|
||||
/* Copy the metadata of the bottom layer to the new layer */
|
||||
|
||||
metadata = gimp_item_get_metadata (GIMP_ITEM (bottom_layer));
|
||||
|
||||
if (!metadata)
|
||||
metadata = gimp_image_get_metadata (image);
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
GimpMetadata *new_metadata;
|
||||
|
||||
new_metadata = gimp_metadata_duplicate (metadata);
|
||||
gimp_item_set_metadata (GIMP_ITEM (merge_layer), new_metadata, TRUE);
|
||||
g_object_unref (new_metadata);
|
||||
}
|
||||
|
||||
/* Copy the tattoo and parasites of the bottom layer to the new layer */
|
||||
gimp_item_set_tattoo (GIMP_ITEM (merge_layer),
|
||||
gimp_item_get_tattoo (GIMP_ITEM (bottom_layer)));
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
#include "gimpsamplepoint.h"
|
||||
#include "gimpsamplepointundo.h"
|
||||
#include "gimpselection.h"
|
||||
#include "gimpviewable.h"
|
||||
|
||||
#include "text/gimptextlayer.h"
|
||||
#include "text/gimptextundo.h"
|
||||
|
@ -173,21 +172,6 @@ gimp_image_undo_push_image_metadata (GimpImage *image,
|
|||
NULL);
|
||||
}
|
||||
|
||||
|
||||
GimpUndo *
|
||||
gimp_image_undo_push_item_metadata (GimpImage *image,
|
||||
const gchar *undo_desc,
|
||||
GimpItem *item)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
|
||||
|
||||
return gimp_image_undo_push (image, GIMP_TYPE_ITEM_UNDO,
|
||||
GIMP_UNDO_ITEM_METADATA, undo_desc,
|
||||
GIMP_DIRTY_IMAGE_META,
|
||||
"item", item,
|
||||
NULL);
|
||||
}
|
||||
|
||||
GimpUndo *
|
||||
gimp_image_undo_push_image_parasite (GimpImage *image,
|
||||
const gchar *undo_desc,
|
||||
|
|
|
@ -118,9 +118,6 @@ GimpUndo * gimp_image_undo_push_item_parasite_remove(GimpImage *image,
|
|||
const gchar *undo_desc,
|
||||
GimpItem *item,
|
||||
const gchar *name);
|
||||
GimpUndo * gimp_image_undo_push_item_metadata (GimpImage *image,
|
||||
const gchar *undo_desc,
|
||||
GimpItem *item);
|
||||
|
||||
|
||||
/* layer undos */
|
||||
|
@ -237,4 +234,5 @@ GimpUndo * gimp_image_undo_push_fs_to_layer (GimpImage *image,
|
|||
GimpUndo * gimp_image_undo_push_cantundo (GimpImage *image,
|
||||
const gchar *undo_desc);
|
||||
|
||||
|
||||
#endif /* __GIMP_IMAGE_UNDO_PUSH_H__ */
|
||||
|
|
|
@ -99,7 +99,6 @@ struct _GimpItemPrivate
|
|||
GimpColorTag color_tag; /* color tag */
|
||||
|
||||
GList *offset_nodes; /* offset nodes to manage */
|
||||
GimpMetadata *metadata /* items metadata */
|
||||
};
|
||||
|
||||
#define GET_PRIVATE(item) G_TYPE_INSTANCE_GET_PRIVATE (item, \
|
||||
|
@ -332,7 +331,6 @@ gimp_item_init (GimpItem *item)
|
|||
g_object_force_floating (G_OBJECT (item));
|
||||
|
||||
private->parasites = gimp_parasite_list_new ();
|
||||
private->metadata = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2422,41 +2420,3 @@ gimp_item_is_in_set (GimpItem *item,
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_item_set_metadata (GimpItem *item,
|
||||
GimpMetadata *metadata,
|
||||
gboolean push_undo)
|
||||
{
|
||||
GimpItemPrivate *private;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
|
||||
|
||||
private = GET_PRIVATE (item);
|
||||
|
||||
if (metadata != private->metadata)
|
||||
{
|
||||
if (push_undo)
|
||||
gimp_image_undo_push_item_metadata (gimp_item_get_image (item),
|
||||
NULL,
|
||||
item);
|
||||
|
||||
if (private->metadata)
|
||||
g_object_unref (private->metadata);
|
||||
|
||||
private->metadata = metadata;
|
||||
g_object_ref (private->metadata);
|
||||
}
|
||||
}
|
||||
|
||||
GimpMetadata *
|
||||
gimp_item_get_metadata (GimpItem *item)
|
||||
{
|
||||
GimpItemPrivate *private;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_ITEM (item), NULL);
|
||||
|
||||
private = GET_PRIVATE (item);
|
||||
|
||||
return private->metadata;
|
||||
}
|
||||
|
|
|
@ -364,9 +364,5 @@ gboolean gimp_item_mask_intersect (GimpItem *item,
|
|||
gboolean gimp_item_is_in_set (GimpItem *item,
|
||||
GimpItemSet set);
|
||||
|
||||
void gimp_item_set_metadata (GimpItem *item,
|
||||
GimpMetadata *metadata,
|
||||
gboolean push_undo);
|
||||
GimpMetadata * gimp_item_get_metadata (GimpItem *item);
|
||||
|
||||
#endif /* __GIMP_ITEM_H__ */
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
|
||||
#include "core-types.h"
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "gimpimage.h"
|
||||
#include "gimpitem.h"
|
||||
#include "gimpitemundo.h"
|
||||
|
@ -48,9 +46,6 @@ static void gimp_item_undo_get_property (GObject *object,
|
|||
|
||||
static void gimp_item_undo_free (GimpUndo *undo,
|
||||
GimpUndoMode undo_mode);
|
||||
static void gimp_item_undo_pop (GimpUndo *undo,
|
||||
GimpUndoMode undo_mode,
|
||||
GimpUndoAccumulator *accum);
|
||||
|
||||
|
||||
G_DEFINE_TYPE (GimpItemUndo, gimp_item_undo, GIMP_TYPE_UNDO)
|
||||
|
@ -68,7 +63,6 @@ gimp_item_undo_class_init (GimpItemUndoClass *klass)
|
|||
object_class->set_property = gimp_item_undo_set_property;
|
||||
object_class->get_property = gimp_item_undo_get_property;
|
||||
|
||||
undo_class->pop = gimp_item_undo_pop;
|
||||
undo_class->free = gimp_item_undo_free;
|
||||
|
||||
g_object_class_install_property (object_class, PROP_ITEM,
|
||||
|
@ -90,14 +84,7 @@ gimp_item_undo_constructed (GObject *object)
|
|||
|
||||
G_OBJECT_CLASS (parent_class)->constructed (object);
|
||||
|
||||
switch (GIMP_UNDO (object)->undo_type)
|
||||
{
|
||||
case GIMP_UNDO_ITEM_METADATA:
|
||||
item_undo->metadata =
|
||||
gimp_metadata_duplicate (gimp_item_get_metadata (item_undo->item));
|
||||
break;
|
||||
}
|
||||
|
||||
g_assert (GIMP_IS_ITEM (item_undo->item));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -152,42 +139,5 @@ gimp_item_undo_free (GimpUndo *undo,
|
|||
item_undo->item = NULL;
|
||||
}
|
||||
|
||||
if (item_undo->metadata)
|
||||
{
|
||||
g_object_unref (item_undo->metadata);
|
||||
item_undo->metadata = NULL;
|
||||
}
|
||||
|
||||
GIMP_UNDO_CLASS (parent_class)->free (undo, undo_mode);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_item_undo_pop (GimpUndo *undo,
|
||||
GimpUndoMode undo_mode,
|
||||
GimpUndoAccumulator *accum)
|
||||
{
|
||||
GimpItemUndo *item_undo = GIMP_ITEM_UNDO (undo);
|
||||
GimpItem *item = GIMP_ITEM_UNDO (undo)->item;
|
||||
|
||||
switch (undo->undo_type)
|
||||
{
|
||||
case GIMP_UNDO_ITEM_METADATA:
|
||||
{
|
||||
GimpMetadata *metadata;
|
||||
|
||||
metadata = gimp_metadata_duplicate (gimp_item_get_metadata (item));
|
||||
|
||||
gimp_item_set_metadata (item, item_undo->metadata, FALSE);
|
||||
|
||||
if (item_undo->metadata)
|
||||
g_object_unref (item_undo->metadata);
|
||||
item_undo->metadata = metadata;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// g_assert_not_reached ();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,8 +38,6 @@ struct _GimpItemUndo
|
|||
GimpUndo parent_instance;
|
||||
|
||||
GimpItem *item; /* the item this undo is for */
|
||||
GimpMetadata *metadata;
|
||||
|
||||
};
|
||||
|
||||
struct _GimpItemUndoClass
|
||||
|
|
|
@ -744,8 +744,6 @@ gimp_layer_duplicate (GimpItem *item,
|
|||
GType new_type)
|
||||
{
|
||||
GimpItem *new_item;
|
||||
GimpMetadata *metadata;
|
||||
GimpMetadata *new_metadata;
|
||||
|
||||
g_return_val_if_fail (g_type_is_a (new_type, GIMP_TYPE_DRAWABLE), NULL);
|
||||
|
||||
|
@ -776,14 +774,6 @@ gimp_layer_duplicate (GimpItem *item,
|
|||
new_layer->edit_mask = layer->edit_mask;
|
||||
new_layer->show_mask = layer->show_mask;
|
||||
}
|
||||
|
||||
metadata = gimp_item_get_metadata (item);
|
||||
if (metadata)
|
||||
{
|
||||
new_metadata = gimp_metadata_duplicate (metadata);
|
||||
gimp_item_set_metadata (new_item, new_metadata, FALSE);
|
||||
g_object_unref (new_metadata);
|
||||
}
|
||||
}
|
||||
|
||||
return new_item;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include "internal-procs.h"
|
||||
|
||||
|
||||
/* 804 procedures registered total */
|
||||
/* 802 procedures registered total */
|
||||
|
||||
void
|
||||
internal_procs_init (GimpPDB *pdb)
|
||||
|
|
|
@ -821,67 +821,6 @@ item_set_tattoo_invoker (GimpProcedure *procedure,
|
|||
error ? *error : NULL);
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_get_metadata_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
const GimpValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GimpValueArray *return_vals;
|
||||
GimpItem *item;
|
||||
gchar *metadata_string = NULL;
|
||||
|
||||
item = gimp_value_get_item (gimp_value_array_index (args, 0), gimp);
|
||||
|
||||
if (success)
|
||||
{
|
||||
GimpMetadata *metadata = gimp_item_get_metadata (item);
|
||||
|
||||
if (metadata)
|
||||
metadata_string = gimp_metadata_serialize (metadata);
|
||||
}
|
||||
|
||||
return_vals = gimp_procedure_get_return_values (procedure, success,
|
||||
error ? *error : NULL);
|
||||
|
||||
if (success)
|
||||
g_value_take_string (gimp_value_array_index (return_vals, 1), metadata_string);
|
||||
|
||||
return return_vals;
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_set_metadata_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
GimpContext *context,
|
||||
GimpProgress *progress,
|
||||
const GimpValueArray *args,
|
||||
GError **error)
|
||||
{
|
||||
gboolean success = TRUE;
|
||||
GimpItem *item;
|
||||
const gchar *metadata_string;
|
||||
|
||||
item = gimp_value_get_item (gimp_value_array_index (args, 0), gimp);
|
||||
metadata_string = g_value_get_string (gimp_value_array_index (args, 1));
|
||||
|
||||
if (success)
|
||||
{
|
||||
GimpMetadata *metadata = gimp_metadata_deserialize (metadata_string);
|
||||
|
||||
gimp_item_set_metadata (item, metadata, TRUE);
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
return gimp_procedure_get_return_values (procedure, success,
|
||||
error ? *error : NULL);
|
||||
}
|
||||
|
||||
static GimpValueArray *
|
||||
item_attach_parasite_invoker (GimpProcedure *procedure,
|
||||
Gimp *gimp,
|
||||
|
@ -1791,66 +1730,6 @@ register_item_procs (GimpPDB *pdb)
|
|||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-get-metadata
|
||||
*/
|
||||
procedure = gimp_procedure_new (item_get_metadata_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-item-get-metadata");
|
||||
gimp_procedure_set_static_strings (procedure,
|
||||
"gimp-item-get-metadata",
|
||||
"Returns the item's metadata.",
|
||||
"Returns metadata from the item.",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"1995-1996",
|
||||
NULL);
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_item_id ("item",
|
||||
"item",
|
||||
"The item",
|
||||
pdb->gimp, FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_return_value (procedure,
|
||||
gimp_param_spec_string ("metadata-string",
|
||||
"metadata string",
|
||||
"The metadata as a xml string",
|
||||
FALSE, FALSE, FALSE,
|
||||
NULL,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-set-metadata
|
||||
*/
|
||||
procedure = gimp_procedure_new (item_set_metadata_invoker);
|
||||
gimp_object_set_static_name (GIMP_OBJECT (procedure),
|
||||
"gimp-item-set-metadata");
|
||||
gimp_procedure_set_static_strings (procedure,
|
||||
"gimp-item-set-metadata",
|
||||
"Set the item's metadata.",
|
||||
"Sets metadata on the item.",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"Spencer Kimball & Peter Mattis",
|
||||
"1995-1996",
|
||||
NULL);
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_item_id ("item",
|
||||
"item",
|
||||
"The item",
|
||||
pdb->gimp, FALSE,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_procedure_add_argument (procedure,
|
||||
gimp_param_spec_string ("metadata-string",
|
||||
"metadata string",
|
||||
"The metadata as a xml string",
|
||||
FALSE, FALSE, FALSE,
|
||||
NULL,
|
||||
GIMP_PARAM_READWRITE));
|
||||
gimp_pdb_register_procedure (pdb, procedure);
|
||||
g_object_unref (procedure);
|
||||
|
||||
/*
|
||||
* gimp-item-attach-parasite
|
||||
*/
|
||||
|
|
|
@ -48,7 +48,6 @@
|
|||
#include "core/gimpimage-undo.h"
|
||||
#include "core/gimpitemstack.h"
|
||||
#include "core/gimplayer-floating-selection.h"
|
||||
#include "core/gimpitem.h"
|
||||
#include "core/gimplayer-new.h"
|
||||
#include "core/gimplayermask.h"
|
||||
#include "core/gimpparasitelist.h"
|
||||
|
@ -269,31 +268,6 @@ xcf_load_image (Gimp *gimp,
|
|||
gimp_parasite_list_remove (private->parasites,
|
||||
gimp_parasite_name (parasite));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/* check for an attributes parasite */
|
||||
parasite = gimp_image_parasite_find (GIMP_IMAGE (image),
|
||||
"gimp-image-attributes");
|
||||
if (parasite)
|
||||
{
|
||||
GimpImagePrivate *private = GIMP_IMAGE_GET_PRIVATE (image);
|
||||
GimpMetadata *metadata;
|
||||
const gchar *attributes_string;
|
||||
|
||||
attributes_string = (gchar *) gimp_parasite_data (parasite);
|
||||
metadata = gimp_metadata_deserialize (attributes_string);
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
gimp_image_set_metadata (image, metadata, FALSE);
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
gimp_parasite_list_remove (private->parasites,
|
||||
gimp_parasite_name (parasite));
|
||||
}
|
||||
}
|
||||
|
||||
/* migrate the old "exif-data" parasite */
|
||||
parasite = gimp_image_parasite_find (GIMP_IMAGE (image),
|
||||
|
@ -310,9 +284,12 @@ xcf_load_image (Gimp *gimp,
|
|||
}
|
||||
else
|
||||
{
|
||||
GimpMetadata *metadata = NULL;
|
||||
GimpMetadata *metadata = gimp_image_get_metadata (image);
|
||||
GError *my_error = NULL;
|
||||
|
||||
if (metadata)
|
||||
g_object_ref (metadata);
|
||||
else
|
||||
metadata = gimp_metadata_new ();
|
||||
|
||||
if (! gimp_metadata_set_from_exif (metadata,
|
||||
|
@ -364,9 +341,12 @@ xcf_load_image (Gimp *gimp,
|
|||
}
|
||||
else
|
||||
{
|
||||
GimpMetadata *metadata = NULL;
|
||||
GimpMetadata *metadata = gimp_image_get_metadata (image);
|
||||
GError *my_error = NULL;
|
||||
|
||||
if (metadata)
|
||||
g_object_ref (metadata);
|
||||
else
|
||||
metadata = gimp_metadata_new ();
|
||||
|
||||
if (! gimp_metadata_set_from_xmp (metadata,
|
||||
|
@ -1465,7 +1445,6 @@ xcf_load_layer (XcfInfo *info,
|
|||
{
|
||||
GimpLayer *layer;
|
||||
GimpLayerMask *layer_mask;
|
||||
const GimpParasite *parasite;
|
||||
guint32 hierarchy_offset;
|
||||
guint32 layer_mask_offset;
|
||||
gboolean apply_mask = TRUE;
|
||||
|
@ -1559,29 +1538,6 @@ xcf_load_layer (XcfInfo *info,
|
|||
|
||||
GIMP_LOG (XCF, "layer props loaded");
|
||||
|
||||
parasite = gimp_item_parasite_find (GIMP_ITEM (layer),
|
||||
"gimp-item-metadata");
|
||||
if (parasite)
|
||||
{
|
||||
GimpMetadata *metadata;
|
||||
const gchar *metadata_string;
|
||||
|
||||
metadata_string = (gchar *) gimp_parasite_data (parasite);
|
||||
metadata = gimp_metadata_deserialize (metadata_string);
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
gimp_item_set_metadata (GIMP_ITEM (layer), metadata, FALSE);
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
gimp_item_parasite_detach (GIMP_ITEM (layer),
|
||||
"gimp-item-metadata",
|
||||
FALSE);
|
||||
}
|
||||
|
||||
GIMP_LOG (XCF, "layer metadata loaded");
|
||||
|
||||
xcf_progress_update (info);
|
||||
|
||||
/* call the evil text layer hack that might change our layer pointer */
|
||||
|
@ -1672,7 +1628,6 @@ xcf_load_channel (XcfInfo *info,
|
|||
GimpImage *image)
|
||||
{
|
||||
GimpChannel *channel;
|
||||
const GimpParasite *parasite;
|
||||
guint32 hierarchy_offset;
|
||||
gint width;
|
||||
gint height;
|
||||
|
@ -1703,27 +1658,6 @@ xcf_load_channel (XcfInfo *info,
|
|||
if (!xcf_load_channel_props (info, image, &channel))
|
||||
goto error;
|
||||
|
||||
parasite = gimp_item_parasite_find (GIMP_ITEM (channel),
|
||||
"gimp-item-metadata");
|
||||
if (parasite)
|
||||
{
|
||||
GimpMetadata *metadata;
|
||||
const gchar *metadata_string;
|
||||
|
||||
metadata_string = (gchar *) gimp_parasite_data (parasite);
|
||||
metadata = gimp_metadata_deserialize (metadata_string);
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
gimp_item_set_metadata (GIMP_ITEM (channel), metadata, FALSE);
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
gimp_item_parasite_detach (GIMP_ITEM (channel),
|
||||
"gimp-item-metadata",
|
||||
FALSE);
|
||||
}
|
||||
|
||||
xcf_progress_update (info);
|
||||
|
||||
/* read the hierarchy and layer mask offsets */
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
#include "core/gimpimage-metadata.h"
|
||||
#include "core/gimpimage-private.h"
|
||||
#include "core/gimpimage-sample-points.h"
|
||||
#include "core/gimpitem.h"
|
||||
#include "core/gimplayer.h"
|
||||
#include "core/gimplayermask.h"
|
||||
#include "core/gimpparasitelist.h"
|
||||
|
@ -394,27 +393,6 @@ xcf_save_image_props (XcfInfo *info,
|
|||
gimp_parasite_list_add (private->parasites, grid_parasite);
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (gimp_image_get_attributes (image))
|
||||
{
|
||||
GimpParasite *attributes_parasite = NULL;
|
||||
GimpAttributes *attributes = gimp_image_get_attributes (image);
|
||||
gchar *attributes_string;
|
||||
|
||||
attributes_string = gimp_attributes_serialize (attributes);
|
||||
|
||||
if (attributes_string)
|
||||
{
|
||||
attributes_parasite = gimp_parasite_new ("gimp-image-attributes",
|
||||
GIMP_PARASITE_PERSISTENT,
|
||||
strlen (attributes_string) + 1,
|
||||
attributes_string);
|
||||
gimp_parasite_list_add (private->parasites, attributes_parasite);
|
||||
g_free (attributes_string);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gimp_image_get_metadata (image))
|
||||
{
|
||||
GimpMetadata *metadata = gimp_image_get_metadata (image);
|
||||
|
@ -490,25 +468,6 @@ xcf_save_layer_props (XcfInfo *info,
|
|||
GimpParasiteList *parasites;
|
||||
gint offset_x;
|
||||
gint offset_y;
|
||||
GimpParasite *metadata_parasite = NULL;
|
||||
|
||||
if (gimp_item_get_metadata (GIMP_ITEM (layer)))
|
||||
{
|
||||
GimpMetadata *metadata = gimp_item_get_metadata (GIMP_ITEM (layer));
|
||||
gchar *metadata_string;
|
||||
|
||||
metadata_string = gimp_metadata_serialize (metadata);
|
||||
|
||||
if (metadata_string)
|
||||
{
|
||||
metadata_parasite = gimp_parasite_new ("gimp-item-metadata",
|
||||
GIMP_PARASITE_PERSISTENT,
|
||||
strlen (metadata_string) + 1,
|
||||
metadata_string);
|
||||
gimp_item_parasite_attach (GIMP_ITEM (layer), metadata_parasite, FALSE);
|
||||
g_free (metadata_string);
|
||||
}
|
||||
}
|
||||
|
||||
if (gimp_viewable_get_children (GIMP_VIEWABLE (layer)))
|
||||
xcf_check_error (xcf_save_prop (info, image, PROP_GROUP_ITEM, error));
|
||||
|
@ -624,27 +583,6 @@ xcf_save_channel_props (XcfInfo *info,
|
|||
{
|
||||
GimpParasiteList *parasites;
|
||||
guchar col[3];
|
||||
#if 0
|
||||
GimpParasite *attributes_parasite = NULL;
|
||||
|
||||
if (gimp_item_get_attributes (GIMP_ITEM (channel)))
|
||||
{
|
||||
GimpAttributes *attributes = gimp_item_get_attributes (GIMP_ITEM (channel));
|
||||
gchar *attributes_string;
|
||||
|
||||
attributes_string = gimp_attributes_serialize (attributes);
|
||||
|
||||
if (attributes_string)
|
||||
{
|
||||
attributes_parasite = gimp_parasite_new ("gimp-item-attributes",
|
||||
GIMP_PARASITE_PERSISTENT,
|
||||
strlen (attributes_string) + 1,
|
||||
attributes_string);
|
||||
gimp_item_parasite_attach (GIMP_ITEM (channel), attributes_parasite, FALSE);
|
||||
g_free (attributes_string);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (channel == gimp_image_get_active_channel (image))
|
||||
xcf_check_error (xcf_save_prop (info, image, PROP_ACTIVE_CHANNEL, error));
|
||||
|
|
|
@ -66,7 +66,7 @@ m4_define([pycairo_required_version], [1.0.2])
|
|||
m4_define([poppler_required_version], [0.44.0])
|
||||
m4_define([poppler_data_required_version], [0.4.7])
|
||||
m4_define([libgudev_required_version], [167])
|
||||
m4_define([gexiv2_required_version], [0.10.3])
|
||||
m4_define([gexiv2_required_version], [0.6.1])
|
||||
m4_define([libmypaint_required_version], [1.3.0])
|
||||
m4_define([lcms_required_version], [2.7])
|
||||
m4_define([libpng_required_version], [1.6.25])
|
||||
|
|
Before Width: | Height: | Size: 569 B |
Before Width: | Height: | Size: 850 B |
|
@ -1,275 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="gimp-image-tag 24.svg">
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="linearGradient19282"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(1.2178615,0,0,1.043881,378.84797,1794.4958)">
|
||||
<stop
|
||||
offset="0"
|
||||
id="stop19284"
|
||||
style="stop-color:#505050;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282-2"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(1.2178615,0,0,1.043881,356.69172,1794.4958)">
|
||||
<stop
|
||||
offset="0"
|
||||
id="stop19284-1"
|
||||
style="stop-color:#666666;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2807"
|
||||
id="linearGradient2813"
|
||||
x1="34.197105"
|
||||
y1="33.725819"
|
||||
x2="17.160702"
|
||||
y2="17.396523"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.51166,0,0,0.475019,3.220846,5.837432)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2807">
|
||||
<stop
|
||||
style="stop-color:#d3d7cf"
|
||||
offset="0"
|
||||
id="stop2809" />
|
||||
<stop
|
||||
style="stop-color:#eeeeec"
|
||||
offset="1"
|
||||
id="stop2811" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2065"
|
||||
id="linearGradient2071"
|
||||
x1="-11.986486"
|
||||
y1="13.122552"
|
||||
x2="-11.986486"
|
||||
y2="29.726542"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.46355126,0,0,0.4786134,21.056353,5.7526316)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2065">
|
||||
<stop
|
||||
style="stop-color:#555753"
|
||||
offset="0"
|
||||
id="stop2067" />
|
||||
<stop
|
||||
style="stop-color:#fcaf3e"
|
||||
offset="1"
|
||||
id="stop2069" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4928"
|
||||
id="radialGradient4915"
|
||||
cx="-6.0070167"
|
||||
cy="32.837029"
|
||||
fx="-6.0070167"
|
||||
fy="32.837029"
|
||||
r="9.90625"
|
||||
gradientTransform="matrix(0.462962,0,0,0.44272,14.86446,6.713194)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4928">
|
||||
<stop
|
||||
id="stop4930"
|
||||
offset="0"
|
||||
style="stop-color:#fce94f;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4932"
|
||||
offset="1"
|
||||
style="stop-color:#fce94f;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4616"
|
||||
id="linearGradient4622"
|
||||
x1="25.355263"
|
||||
y1="34.006802"
|
||||
x2="25.355263"
|
||||
y2="32.409008"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.462962,0,0,0.461866,4.347921,6.0846753)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4616">
|
||||
<stop
|
||||
style="stop-color:#2e3436;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4618" />
|
||||
<stop
|
||||
style="stop-color:#2e3436;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4620" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.4076613"
|
||||
inkscape:cx="160"
|
||||
inkscape:cy="995.02261"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="2340"
|
||||
inkscape:window-height="1022"
|
||||
inkscape:window-x="156"
|
||||
inkscape:window-y="156"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="layer1-5"
|
||||
inkscape:label="Ebene 1"
|
||||
transform="matrix(2.3238903,0,0,2.3238903,-624.38128,-1263.9315)">
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-6"
|
||||
transform="translate(269.14287,-491.99997)">
|
||||
<g
|
||||
transform="matrix(0.69565065,0,0,0.80000484,24.148475,1040.5518)"
|
||||
id="g4028">
|
||||
<g
|
||||
transform="translate(-38.71351,-12.237062)"
|
||||
id="g2403">
|
||||
<g
|
||||
id="g3799"
|
||||
transform="matrix(0.557846,0,0,0.461866,-85.36183,64.50698)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="opacity:0.58241763" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient2813);fill-opacity:1;stroke:#8a8a8a;stroke-width:0.99999869;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2073"
|
||||
width="22.000015"
|
||||
height="19.00001"
|
||||
x="4.500001"
|
||||
y="7.4999981"
|
||||
rx="1.8229138"
|
||||
ry="1.8185979" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient2071);fill-opacity:1;stroke:#888a85;stroke-width:1.01321542;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2063"
|
||||
width="16.236822"
|
||||
height="11.486709"
|
||||
x="7.3816152"
|
||||
y="11.256679"
|
||||
rx="0.20280379"
|
||||
ry="0.2071792" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4915);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="m 11.79411,16.401215 c -2.392951,0.151471 -4.296871,2.150075 -4.296871,4.575364 0,0.09366 0.00889,0.181964 0.014468,0.274234 l 9.143509,0 c 0.0056,-0.09227 0.01447,-0.180574 0.01447,-0.274234 0,-2.523879 -2.056354,-4.575364 -4.586223,-4.575364 -0.09882,0 -0.192077,-0.0062 -0.289351,0 z"
|
||||
id="path4898"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient4622);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect1324"
|
||||
width="15.740722"
|
||||
height="0.92373294"
|
||||
x="7.5886593"
|
||||
y="21.326269"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999893;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2077"
|
||||
width="20.000008"
|
||||
height="16.99999"
|
||||
x="5.5000043"
|
||||
y="8.4999981"
|
||||
rx="1.42609"
|
||||
ry="1.4227122" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 18.031043,21.675958 c 0,0 -0.257213,-1.424098 -0.257213,-2.296525 0.0071,-0.39799 3.604954,-3.498458 3.614237,-3.960285 l -0.836462,0.727219 -0.585726,-1.589717 1.974613,0.204118 0.925925,-0.923733 -1.048689,0.768044 -0.360661,-0.08165 -0.4425,-1.610129 0.22506,1.569306 -1.63441,-0.08165 0.511509,1.29875 -1.416971,-1.400809 1.498813,1.949752 c 3.7e-5,0.43486 -2.954107,3.089518 -2.949079,2.631777 L 16.024282,17.241 l -0.102301,-2.216308 0.925925,-0.263924 0.811179,-1.99555 -1.069313,1.844378 -0.834796,-0.03774 -1.868696,-1.574507 -2.565841,-0.979767 2.192051,1.201894 -1.757172,0.155689 2.314813,0 1.388887,1.385599 0.163681,2.393383 -2.478493,-2.393383 1.042268,1.250322 -1.505231,1.05901 1.653439,-0.923733 2.615524,3.286696 -0.1023,2.242895 1.183137,0 z"
|
||||
id="path2079"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
id="path4924"
|
||||
d="m 11.925565,18.563623 c -1.305803,0.08266 -2.344749,1.17327 -2.344749,2.49672 0,0.05111 0.00485,0.0993 0.00789,0.149646 l 4.989498,0 c 0.003,-0.05035 0.0079,-0.09854 0.0079,-0.149646 0,-1.377249 -1.122129,-2.49672 -2.502647,-2.49672 -0.05393,0 -0.104814,-0.0034 -0.157896,0 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#fef39e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#fffbd7;fill-opacity:0.55681817;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="m 11.963041,19.163267 c -0.995873,0.06304 -1.788226,0.894796 -1.788226,1.904128 0,0.03898 0.0037,0.07573 0.006,0.114127 l 3.805249,0 c 0.0023,-0.0384 0.006,-0.07515 0.006,-0.114127 0,-1.050362 -0.855793,-1.904128 -1.908647,-1.904128 -0.04113,0 -0.07994,-0.0026 -0.12042,0 z"
|
||||
id="path4926"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,81.714643,582.33533)"
|
||||
style="stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="g4559">
|
||||
<path
|
||||
style="fill:#0000ff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 157.03498,113.29807 8.9e-4,-3.47688 1.13932,-1.14753 1.13933,-1.14754 1.16389,1.14589 1.1639,1.14588 0,3.47853 0,3.47853 -2.30411,0 -2.30411,0 8.9e-4,-3.47688 z"
|
||||
id="path4551"
|
||||
inkscape:connector-curvature="0" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4557"
|
||||
cx="159.2991"
|
||||
cy="109.53211"
|
||||
r="0.58017093" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#dbddda;stroke-width:0.1;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect4212"
|
||||
width="39.872719"
|
||||
height="36.549992"
|
||||
x="157.41417"
|
||||
y="451.77939" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.9 KiB |
|
@ -1,268 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 16 16"
|
||||
id="svg4214"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="gimp-image-tag.svg">
|
||||
<defs
|
||||
id="defs4216">
|
||||
<linearGradient
|
||||
id="linearGradient19282"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(1.2178615,0,0,1.043881,378.84797,1794.4958)">
|
||||
<stop
|
||||
offset="0"
|
||||
id="stop19284"
|
||||
style="stop-color:#505050;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282-2"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(1.2178615,0,0,1.043881,356.69172,1794.4958)">
|
||||
<stop
|
||||
offset="0"
|
||||
id="stop19284-1"
|
||||
style="stop-color:#666666;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2807"
|
||||
id="linearGradient2813"
|
||||
x1="34.197105"
|
||||
y1="33.725819"
|
||||
x2="17.160702"
|
||||
y2="17.396523"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.51166,0,0,0.475019,3.220846,5.837432)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2807">
|
||||
<stop
|
||||
style="stop-color:#d3d7cf"
|
||||
offset="0"
|
||||
id="stop2809" />
|
||||
<stop
|
||||
style="stop-color:#eeeeec"
|
||||
offset="1"
|
||||
id="stop2811" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2065"
|
||||
id="linearGradient2071"
|
||||
x1="-11.986486"
|
||||
y1="13.122552"
|
||||
x2="-11.986486"
|
||||
y2="29.726542"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.46355126,0,0,0.4786134,21.056353,5.7526316)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2065">
|
||||
<stop
|
||||
style="stop-color:#555753"
|
||||
offset="0"
|
||||
id="stop2067" />
|
||||
<stop
|
||||
style="stop-color:#fcaf3e"
|
||||
offset="1"
|
||||
id="stop2069" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4928"
|
||||
id="radialGradient4915"
|
||||
cx="-6.0070167"
|
||||
cy="32.837029"
|
||||
fx="-6.0070167"
|
||||
fy="32.837029"
|
||||
r="9.90625"
|
||||
gradientTransform="matrix(0.462962,0,0,0.44272,14.86446,6.713194)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4928">
|
||||
<stop
|
||||
id="stop4930"
|
||||
offset="0"
|
||||
style="stop-color:#fce94f;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4932"
|
||||
offset="1"
|
||||
style="stop-color:#fce94f;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4616"
|
||||
id="linearGradient4622"
|
||||
x1="25.355263"
|
||||
y1="34.006802"
|
||||
x2="25.355263"
|
||||
y2="32.409008"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.462962,0,0,0.461866,4.347921,6.0846753)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4616">
|
||||
<stop
|
||||
style="stop-color:#2e3436;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4618" />
|
||||
<stop
|
||||
style="stop-color:#2e3436;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4620" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.8436364"
|
||||
inkscape:cx="41.428571"
|
||||
inkscape:cy="1011.4286"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1377"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4219">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="layer1-9"
|
||||
inkscape:label="Ebene 1"
|
||||
transform="translate(-268.84576,-544.6878)">
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
id="layer1-6"
|
||||
transform="translate(269.14287,-491.99997)">
|
||||
<g
|
||||
transform="matrix(0.69565065,0,0,0.80000484,24.148475,1040.5518)"
|
||||
id="g4028">
|
||||
<g
|
||||
transform="translate(-38.71351,-12.237062)"
|
||||
id="g2403">
|
||||
<g
|
||||
id="g3799"
|
||||
transform="matrix(0.557846,0,0,0.461866,-85.36183,64.50698)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="opacity:0.58241763" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient2813);fill-opacity:1;stroke:#8a8a8a;stroke-width:0.99999869;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2073"
|
||||
width="22.000015"
|
||||
height="19.00001"
|
||||
x="4.500001"
|
||||
y="7.4999981"
|
||||
rx="1.8229138"
|
||||
ry="1.8185979" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient2071);fill-opacity:1;stroke:#888a85;stroke-width:1.01321542;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2063"
|
||||
width="16.236822"
|
||||
height="11.486709"
|
||||
x="7.3816152"
|
||||
y="11.256679"
|
||||
rx="0.20280379"
|
||||
ry="0.2071792" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4915);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="m 11.79411,16.401215 c -2.392951,0.151471 -4.296871,2.150075 -4.296871,4.575364 0,0.09366 0.00889,0.181964 0.014468,0.274234 l 9.143509,0 c 0.0056,-0.09227 0.01447,-0.180574 0.01447,-0.274234 0,-2.523879 -2.056354,-4.575364 -4.586223,-4.575364 -0.09882,0 -0.192077,-0.0062 -0.289351,0 z"
|
||||
id="path4898"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient4622);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect1324"
|
||||
width="15.740722"
|
||||
height="0.92373294"
|
||||
x="7.5886593"
|
||||
y="21.326269"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999893;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect2077"
|
||||
width="20.000008"
|
||||
height="16.99999"
|
||||
x="5.5000043"
|
||||
y="8.4999981"
|
||||
rx="1.42609"
|
||||
ry="1.4227122" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 18.031043,21.675958 c 0,0 -0.257213,-1.424098 -0.257213,-2.296525 0.0071,-0.39799 3.604954,-3.498458 3.614237,-3.960285 l -0.836462,0.727219 -0.585726,-1.589717 1.974613,0.204118 0.925925,-0.923733 -1.048689,0.768044 -0.360661,-0.08165 -0.4425,-1.610129 0.22506,1.569306 -1.63441,-0.08165 0.511509,1.29875 -1.416971,-1.400809 1.498813,1.949752 c 3.7e-5,0.43486 -2.954107,3.089518 -2.949079,2.631777 L 16.024282,17.241 l -0.102301,-2.216308 0.925925,-0.263924 0.811179,-1.99555 -1.069313,1.844378 -0.834796,-0.03774 -1.868696,-1.574507 -2.565841,-0.979767 2.192051,1.201894 -1.757172,0.155689 2.314813,0 1.388887,1.385599 0.163681,2.393383 -2.478493,-2.393383 1.042268,1.250322 -1.505231,1.05901 1.653439,-0.923733 2.615524,3.286696 -0.1023,2.242895 1.183137,0 z"
|
||||
id="path2079"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
id="path4924"
|
||||
d="m 11.925565,18.563623 c -1.305803,0.08266 -2.344749,1.17327 -2.344749,2.49672 0,0.05111 0.00485,0.0993 0.00789,0.149646 l 4.989498,0 c 0.003,-0.05035 0.0079,-0.09854 0.0079,-0.149646 0,-1.377249 -1.122129,-2.49672 -2.502647,-2.49672 -0.05393,0 -0.104814,-0.0034 -0.157896,0 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#fef39e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#fffbd7;fill-opacity:0.55681817;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
d="m 11.963041,19.163267 c -0.995873,0.06304 -1.788226,0.894796 -1.788226,1.904128 0,0.03898 0.0037,0.07573 0.006,0.114127 l 3.805249,0 c 0.0023,-0.0384 0.006,-0.07515 0.006,-0.114127 0,-1.050362 -0.855793,-1.904128 -1.908647,-1.904128 -0.04113,0 -0.07994,-0.0026 -0.12042,0 z"
|
||||
id="path4926"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,81.714643,582.33533)"
|
||||
style="stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="g4559">
|
||||
<path
|
||||
style="fill:#0000ff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 157.03498,113.29807 8.9e-4,-3.47688 1.13932,-1.14753 1.13933,-1.14754 1.16389,1.14589 1.1639,1.14588 0,3.47853 0,3.47853 -2.30411,0 -2.30411,0 8.9e-4,-3.47688 z"
|
||||
id="path4551"
|
||||
inkscape:connector-curvature="0" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4557"
|
||||
cx="159.2991"
|
||||
cy="109.53211"
|
||||
r="0.58017093" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 569 B |
Before Width: | Height: | Size: 850 B |
Before Width: | Height: | Size: 1.9 KiB |
|
@ -1,189 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="24"
|
||||
height="24"
|
||||
id="svg4136"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
viewBox="0 0 24 24"
|
||||
sodipodi:docname="gimp-image-tag-sym-24.svg"
|
||||
inkscape:export-filename="D:\x\gimp-image-tag-sym-48.png"
|
||||
inkscape:export-xdpi="68.080002"
|
||||
inkscape:export-ydpi="68.080002">
|
||||
<defs
|
||||
id="defs4138">
|
||||
<linearGradient
|
||||
id="linearGradient8074"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#be00be;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8072" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7561"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#a5a5a5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7558" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7548"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#ebebeb;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7546" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7542"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#c9c9c9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7538" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0,-735328.32,170712.69,0,2464326300,577972450)">
|
||||
<stop
|
||||
style="stop-color:#b4b4b4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282-4"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0.34682586,0,0,0.30620888,-13.35187,382.03851)">
|
||||
<stop
|
||||
style="stop-color:#bebebe;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284-0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10174"
|
||||
x1="-97"
|
||||
y1="168.5"
|
||||
x2="-87"
|
||||
y2="168.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10176"
|
||||
x1="142.0002"
|
||||
y1="386.95001"
|
||||
x2="156.0002"
|
||||
y2="386.95001"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.5"
|
||||
inkscape:cx="-7.7272727"
|
||||
inkscape:cy="32"
|
||||
inkscape:current-layer="g4559"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1377"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4141">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(0,-40)">
|
||||
<g
|
||||
id="stock"
|
||||
style="display:inline"
|
||||
transform="matrix(1.4886364,0,0,1.508596,-93.79,-1.8312358)"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643">
|
||||
<g
|
||||
transform="translate(-77.874095,-351.36258)"
|
||||
style="display:inline"
|
||||
id="gimp-image">
|
||||
<rect
|
||||
transform="translate(241.0002,217)"
|
||||
y="162"
|
||||
x="-100"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect6346"
|
||||
style="fill:none;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect5882"
|
||||
d="m 142.0002,379.9 0,14.1 14,0 0,-14.1 z m 1,1.1 12,0 0,9 -12,0 z"
|
||||
style="fill:url(#linearGradient10176);fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect10683"
|
||||
transform="translate(241.0002,217)"
|
||||
d="m -97,165 0,7 1,0 c 0,-0.75515 0.671573,-1.375 1.5,-1.375 0.828427,0 1.5,0.61985 1.5,1.375 l 1,0 0,-1.5 c 1.4e-4,-0.98573 -0.7274,-1.47402 -2,-2.0625 0,0 0.02947,3.7e-4 0.25,0 0.40803,0.0835 1.38212,0.3501 1.75,0.59375 -0.09819,-0.35554 -0.14101,-0.89353 -0.4375,-1.34375 C -92.73401,167.23732 -94,166.34375 -94,166.34375 l 0.0625,-0.0312 c 0.05568,-0.0402 0.9453,0.7655 1.25,0.6875 -0.13515,-0.32497 -0.25949,-0.63468 -0.40625,-0.8125 l 0.1875,-0.0312 c 0.35629,0.59147 0.46684,0.72309 0.84375,1.15625 0.12472,0.0571 -0.03108,-0.0423 1.0625,-0.59375 L -91,167 c 0,0 -1.0625,0.30993 -0.75,0.90625 0.22248,0.30573 0.39823,1.01025 0.75,1.09375 0,0 0.85009,-1.22532 1.5,-1.625 0,0 -0.21923,-0.50879 -0.21875,-0.78125 3.7e-4,-0.20918 0.15625,-0.59375 0.15625,-0.59375 0.02319,0.39561 -0.0029,0.83091 0.28125,1.21875 L -88.34375,166 -88,166 c 0,0 -2.25088,2.3886 -2,2.78125 0.39455,-0.048 2,-0.34375 2,-0.34375 l 0,0.0625 c -1.04689,0.34884 -1.67111,0.68872 -2,1.5 l 0,2 3,0 0,-7 z"
|
||||
style="opacity:0.3;fill:url(#linearGradient10174);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(2.1155203,-2.1155203,2.1155203,2.1155203,-559.23734,114.18176)"
|
||||
style="fill:#808080;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="g4559">
|
||||
<path
|
||||
style="fill:#999999;fill-opacity:1;stroke:#f7ffff;stroke-width:0.03767881;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 148.95421,117.66287 0.005,-1.31006 0.43094,-0.434 0.43093,-0.43402 0.4369,0.43009 0.43691,0.43009 -0.005,1.31068 -0.005,1.31067 -0.86817,0.003 -0.86817,0.003 0.005,-1.31005 z"
|
||||
id="path4551"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.03767936;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4557"
|
||||
cx="150.25793"
|
||||
cy="116.81281"
|
||||
r="0.21860467"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643"
|
||||
transform="matrix(0.99999277,-0.00380225,-0.00380225,0.99999277,0,0)" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(0,-40)" />
|
||||
</svg>
|
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 461 B |
Before Width: | Height: | Size: 739 B |
|
@ -1,189 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="24"
|
||||
height="24"
|
||||
id="svg4136"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
viewBox="0 0 24 24"
|
||||
sodipodi:docname="gimp-image-tag-sym-24.svg"
|
||||
inkscape:export-filename="D:\x\gimp-image-tag-sym-48.png"
|
||||
inkscape:export-xdpi="68.080002"
|
||||
inkscape:export-ydpi="68.080002">
|
||||
<defs
|
||||
id="defs4138">
|
||||
<linearGradient
|
||||
id="linearGradient8074"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#be00be;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8072" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7561"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#a5a5a5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7558" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7548"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#ebebeb;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7546" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7542"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#c9c9c9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7538" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0,-735328.32,170712.69,0,2464326300,577972450)">
|
||||
<stop
|
||||
style="stop-color:#b4b4b4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282-4"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0.34682586,0,0,0.30620888,-13.35187,382.03851)">
|
||||
<stop
|
||||
style="stop-color:#bebebe;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284-0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10174"
|
||||
x1="-97"
|
||||
y1="168.5"
|
||||
x2="-87"
|
||||
y2="168.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10176"
|
||||
x1="142.0002"
|
||||
y1="386.95001"
|
||||
x2="156.0002"
|
||||
y2="386.95001"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.5"
|
||||
inkscape:cx="-7.7272727"
|
||||
inkscape:cy="32"
|
||||
inkscape:current-layer="g4559"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1377"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4141">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(0,-40)">
|
||||
<g
|
||||
id="stock"
|
||||
style="display:inline"
|
||||
transform="matrix(1.4886364,0,0,1.508596,-93.79,-1.8312358)"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643">
|
||||
<g
|
||||
transform="translate(-77.874095,-351.36258)"
|
||||
style="display:inline"
|
||||
id="gimp-image">
|
||||
<rect
|
||||
transform="translate(241.0002,217)"
|
||||
y="162"
|
||||
x="-100"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect6346"
|
||||
style="fill:none;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect5882"
|
||||
d="m 142.0002,379.9 0,14.1 14,0 0,-14.1 z m 1,1.1 12,0 0,9 -12,0 z"
|
||||
style="fill:url(#linearGradient10176);fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect10683"
|
||||
transform="translate(241.0002,217)"
|
||||
d="m -97,165 0,7 1,0 c 0,-0.75515 0.671573,-1.375 1.5,-1.375 0.828427,0 1.5,0.61985 1.5,1.375 l 1,0 0,-1.5 c 1.4e-4,-0.98573 -0.7274,-1.47402 -2,-2.0625 0,0 0.02947,3.7e-4 0.25,0 0.40803,0.0835 1.38212,0.3501 1.75,0.59375 -0.09819,-0.35554 -0.14101,-0.89353 -0.4375,-1.34375 C -92.73401,167.23732 -94,166.34375 -94,166.34375 l 0.0625,-0.0312 c 0.05568,-0.0402 0.9453,0.7655 1.25,0.6875 -0.13515,-0.32497 -0.25949,-0.63468 -0.40625,-0.8125 l 0.1875,-0.0312 c 0.35629,0.59147 0.46684,0.72309 0.84375,1.15625 0.12472,0.0571 -0.03108,-0.0423 1.0625,-0.59375 L -91,167 c 0,0 -1.0625,0.30993 -0.75,0.90625 0.22248,0.30573 0.39823,1.01025 0.75,1.09375 0,0 0.85009,-1.22532 1.5,-1.625 0,0 -0.21923,-0.50879 -0.21875,-0.78125 3.7e-4,-0.20918 0.15625,-0.59375 0.15625,-0.59375 0.02319,0.39561 -0.0029,0.83091 0.28125,1.21875 L -88.34375,166 -88,166 c 0,0 -2.25088,2.3886 -2,2.78125 0.39455,-0.048 2,-0.34375 2,-0.34375 l 0,0.0625 c -1.04689,0.34884 -1.67111,0.68872 -2,1.5 l 0,2 3,0 0,-7 z"
|
||||
style="opacity:0.3;fill:url(#linearGradient10174);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(2.1155203,-2.1155203,2.1155203,2.1155203,-559.23734,114.18176)"
|
||||
style="fill:#808080;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="g4559">
|
||||
<path
|
||||
style="fill:#999999;fill-opacity:1;stroke:#f7ffff;stroke-width:0.03767881;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 148.95421,117.66287 0.005,-1.31006 0.43094,-0.434 0.43093,-0.43402 0.4369,0.43009 0.43691,0.43009 -0.005,1.31068 -0.005,1.31067 -0.86817,0.003 -0.86817,0.003 0.005,-1.31005 z"
|
||||
id="path4551"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.03767936;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4557"
|
||||
cx="150.25793"
|
||||
cy="116.81281"
|
||||
r="0.21860467"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643"
|
||||
transform="matrix(0.99999277,-0.00380225,-0.00380225,0.99999277,0,0)" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(0,-40)" />
|
||||
</svg>
|
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB |
|
@ -1,189 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
id="svg4136"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
viewBox="0 0 16 16"
|
||||
sodipodi:docname="gimp-image-tag-sym-16.svg"
|
||||
inkscape:export-filename="D:\x\gimp-image-tag-sym-48.png"
|
||||
inkscape:export-xdpi="68.080002"
|
||||
inkscape:export-ydpi="68.080002">
|
||||
<defs
|
||||
id="defs4138">
|
||||
<linearGradient
|
||||
id="linearGradient8074"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#be00be;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8072" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7561"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#a5a5a5;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7558" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7548"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#ebebeb;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7546" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7542"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#c9c9c9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop7538" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0,-735328.32,170712.69,0,2464326300,577972450)">
|
||||
<stop
|
||||
style="stop-color:#b4b4b4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient19282-4"
|
||||
osb:paint="solid"
|
||||
gradientTransform="matrix(0.34682586,0,0,0.30620888,-13.35187,382.03851)">
|
||||
<stop
|
||||
style="stop-color:#bebebe;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop19284-0" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10174"
|
||||
x1="-97"
|
||||
y1="168.5"
|
||||
x2="-87"
|
||||
y2="168.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient19282-4"
|
||||
id="linearGradient10176"
|
||||
x1="142.0002"
|
||||
y1="386.95001"
|
||||
x2="156.0002"
|
||||
y2="386.95001"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(520.93726,194.66866)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.5"
|
||||
inkscape:cx="-7.7272727"
|
||||
inkscape:cy="32"
|
||||
inkscape:current-layer="g4559"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="3440"
|
||||
inkscape:window-height="1377"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4141">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(0,-48)">
|
||||
<g
|
||||
id="stock"
|
||||
style="display:inline"
|
||||
transform="matrix(0.97282511,0,0,0.98586873,-61.228842,20.979234)"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643">
|
||||
<g
|
||||
transform="translate(-77.874095,-351.36258)"
|
||||
style="display:inline"
|
||||
id="gimp-image">
|
||||
<rect
|
||||
transform="translate(241.0002,217)"
|
||||
y="162"
|
||||
x="-100"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect6346"
|
||||
style="fill:none;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect5882"
|
||||
d="m 142.0002,379.9 0,14.1 14,0 0,-14.1 z m 1,1.1 12,0 0,9 -12,0 z"
|
||||
style="fill:url(#linearGradient10176);fill-opacity:1;stroke:none" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="rect10683"
|
||||
transform="translate(241.0002,217)"
|
||||
d="m -97,165 0,7 1,0 c 0,-0.75515 0.671573,-1.375 1.5,-1.375 0.828427,0 1.5,0.61985 1.5,1.375 l 1,0 0,-1.5 c 1.4e-4,-0.98573 -0.7274,-1.47402 -2,-2.0625 0,0 0.02947,3.7e-4 0.25,0 0.40803,0.0835 1.38212,0.3501 1.75,0.59375 -0.09819,-0.35554 -0.14101,-0.89353 -0.4375,-1.34375 C -92.73401,167.23732 -94,166.34375 -94,166.34375 l 0.0625,-0.0312 c 0.05568,-0.0402 0.9453,0.7655 1.25,0.6875 -0.13515,-0.32497 -0.25949,-0.63468 -0.40625,-0.8125 l 0.1875,-0.0312 c 0.35629,0.59147 0.46684,0.72309 0.84375,1.15625 0.12472,0.0571 -0.03108,-0.0423 1.0625,-0.59375 L -91,167 c 0,0 -1.0625,0.30993 -0.75,0.90625 0.22248,0.30573 0.39823,1.01025 0.75,1.09375 0,0 0.85009,-1.22532 1.5,-1.625 0,0 -0.21923,-0.50879 -0.21875,-0.78125 3.7e-4,-0.20918 0.15625,-0.59375 0.15625,-0.59375 0.02319,0.39561 -0.0029,0.83091 0.28125,1.21875 L -88.34375,166 -88,166 c 0,0 -2.25088,2.3886 -2,2.78125 0.39455,-0.048 2,-0.34375 2,-0.34375 l 0,0.0625 c -1.04689,0.34884 -1.67111,0.68872 -2,1.5 l 0,2 3,0 0,-7 z"
|
||||
style="opacity:0.3;fill:url(#linearGradient10174);fill-opacity:1;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(2.1155203,-2.1155203,2.1155203,2.1155203,-559.23734,114.18176)"
|
||||
style="fill:#808080;stroke:#f7ffff;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="g4559">
|
||||
<path
|
||||
style="fill:#999999;fill-opacity:1;stroke:#f7ffff;stroke-width:0.02462314;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 147.26469,118.59655 0.003,-0.85612 0.28162,-0.28362 0.28161,-0.28364 0.28552,0.28107 0.28552,0.28106 -0.003,0.85653 -0.003,0.85653 -0.56735,0.002 -0.56735,0.002 0.003,-0.85612 z"
|
||||
id="path4551"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#f7ffff;stroke-width:0.02462349;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="path4557"
|
||||
cx="148.27634"
|
||||
cy="118.23177"
|
||||
r="0.14285833"
|
||||
inkscape:export-xdpi="90.773643"
|
||||
inkscape:export-ydpi="90.773643"
|
||||
transform="matrix(0.99999277,-0.00380225,-0.00380225,0.99999277,0,0)" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
transform="translate(0,-48)" />
|
||||
</svg>
|
Before Width: | Height: | Size: 7.0 KiB |
|
@ -142,7 +142,6 @@ scalable_images = \
|
|||
scalable/gimp-histogram.svg \
|
||||
scalable/gimp-images.svg \
|
||||
scalable/gimp-image.svg \
|
||||
scalable/gimp-image-metadata.svg \
|
||||
scalable/gimp-image-open.svg \
|
||||
scalable/gimp-image-reload.svg \
|
||||
scalable/gimp-info.svg \
|
||||
|
@ -354,7 +353,6 @@ vector24_images = \
|
|||
24/gimp-grid.svg \
|
||||
24/gimp-histogram.svg \
|
||||
24/gimp-image.svg \
|
||||
24/gimp-image-metadata.svg \
|
||||
24/gimp-images.svg \
|
||||
24/gimp-info.svg \
|
||||
24/gimp-landscape.svg \
|
||||
|
@ -607,7 +605,6 @@ icons16_images = \
|
|||
16/gimp-histogram-logarithmic.png \
|
||||
16/gimp-histogram.png \
|
||||
16/gimp-image.png \
|
||||
16/gimp-image-metadata.png \
|
||||
16/gimp-images.png \
|
||||
16/gimp-image-open.png \
|
||||
16/gimp-image-reload.png \
|
||||
|
@ -864,7 +861,6 @@ icons24_images = \
|
|||
24/gimp-hchain.png \
|
||||
24/gimp-hfill.png \
|
||||
24/gimp-image.png \
|
||||
24/gimp-image-metadata.png \
|
||||
24/gimp-images.png \
|
||||
24/gimp-info.png \
|
||||
24/gimp-layer-mask.png \
|
||||
|
@ -974,7 +970,6 @@ icons48_images = \
|
|||
48/gimp-channel.png \
|
||||
48/gimp-floating-selection.png \
|
||||
48/gimp-image.png \
|
||||
48/gimp-image-metadata.png \
|
||||
48/gimp-layer-mask.png \
|
||||
48/gimp-layer.png \
|
||||
48/gimp-prefs-color-management.png \
|
||||
|
|
|
@ -222,8 +222,6 @@ libgimp_sources = \
|
|||
gimpimage.h \
|
||||
gimpimagecolorprofile.c \
|
||||
gimpimagecolorprofile.h \
|
||||
gimpitem.c \
|
||||
gimpitem.h \
|
||||
gimplayer.c \
|
||||
gimplayer.h \
|
||||
gimppalette.c \
|
||||
|
@ -347,7 +345,6 @@ gimpinclude_HEADERS = \
|
|||
gimpgradientselect.h \
|
||||
gimpimage.h \
|
||||
gimpimagecolorprofile.h \
|
||||
gimpitem.h \
|
||||
gimplayer.h \
|
||||
gimppalette.h \
|
||||
gimppalettes.h \
|
||||
|
|
|
@ -557,7 +557,6 @@ EXPORTS
|
|||
gimp_item_get_linked
|
||||
gimp_item_get_lock_content
|
||||
gimp_item_get_lock_position
|
||||
gimp_item_get_metadata
|
||||
gimp_item_get_name
|
||||
gimp_item_get_parasite
|
||||
gimp_item_get_parasite_list
|
||||
|
@ -577,7 +576,6 @@ EXPORTS
|
|||
gimp_item_set_linked
|
||||
gimp_item_set_lock_content
|
||||
gimp_item_set_lock_position
|
||||
gimp_item_set_metadata
|
||||
gimp_item_set_name
|
||||
gimp_item_set_tattoo
|
||||
gimp_item_set_visible
|
||||
|
|
|
@ -46,7 +46,6 @@
|
|||
#include <libgimp/gimpgradientselect.h>
|
||||
#include <libgimp/gimpimage.h>
|
||||
#include <libgimp/gimpimagecolorprofile.h>
|
||||
#include <libgimp/gimpitem.h>
|
||||
#include <libgimp/gimplayer.h>
|
||||
#include <libgimp/gimppalette.h>
|
||||
#include <libgimp/gimppalettes.h>
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include "gimp.h"
|
||||
#include "gimpui.h"
|
||||
#include "gimpimagemetadata.h"
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "libgimp-intl.h"
|
||||
|
||||
|
@ -45,6 +44,7 @@ static gboolean gimp_image_metadata_rotate_dialog (gint32 image_I
|
|||
GExiv2Orientation orientation,
|
||||
const gchar *parasite_name);
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
/**
|
||||
|
@ -81,24 +81,18 @@ gimp_image_metadata_load_prepare (gint32 image_ID,
|
|||
#if 0
|
||||
{
|
||||
gchar *xml = gimp_metadata_serialize (metadata);
|
||||
GimpMetadata *new = gimp_metadata_deserialize (xml);
|
||||
gchar *xml2 = gimp_metadata_serialize (new);
|
||||
|
||||
// FILE *f = fopen ("/tmp/gimp-test-xml1", "w");
|
||||
FILE *f = fopen ("e:\\gimp-test-xml1", "w");
|
||||
FILE *f = fopen ("/tmp/gimp-test-xml1", "w");
|
||||
fprintf (f, "%s", xml);
|
||||
fclose (f);
|
||||
|
||||
GimpMetadata *new = gimp_metadata_deserialize (xml);
|
||||
|
||||
gimp_metadata_print (new);
|
||||
|
||||
gchar *xml2 = gimp_metadata_serialize (new);
|
||||
|
||||
// f = fopen ("/tmp/gimp-test-xml2", "w");
|
||||
f = fopen ("e:\\gimp-test-xml2", "w");
|
||||
f = fopen ("/tmp/gimp-test-xml2", "w");
|
||||
fprintf (f, "%s", xml2);
|
||||
fclose (f);
|
||||
|
||||
// system ("diff -u /tmp/gimp-test-xml1 /tmp/gimp-test-xml2");
|
||||
system ("diff -u /tmp/gimp-test-xml1 /tmp/gimp-test-xml2");
|
||||
|
||||
g_free (xml);
|
||||
g_free (xml2);
|
||||
|
@ -106,7 +100,7 @@ gimp_image_metadata_load_prepare (gint32 image_ID,
|
|||
}
|
||||
#endif
|
||||
|
||||
gexiv2_metadata_erase_exif_thumbnail (GEXIV2_METADATA (metadata));
|
||||
gexiv2_metadata_erase_exif_thumbnail (metadata);
|
||||
}
|
||||
|
||||
return metadata;
|
||||
|
@ -128,7 +122,6 @@ gimp_image_metadata_load_prepare (gint32 image_ID,
|
|||
*/
|
||||
void
|
||||
gimp_image_metadata_load_finish (gint32 image_ID,
|
||||
gint32 layer_ID,
|
||||
const gchar *mime_type,
|
||||
GimpMetadata *metadata,
|
||||
GimpMetadataLoadFlags flags,
|
||||
|
@ -136,28 +129,17 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
{
|
||||
g_return_if_fail (image_ID > 0);
|
||||
g_return_if_fail (mime_type != NULL);
|
||||
g_return_if_fail (IS_GIMP_METADATA(metadata));
|
||||
|
||||
if (flags & GIMP_METADATA_LOAD_ORIENTATION)
|
||||
{
|
||||
gimp_image_metadata_rotate_query (image_ID, mime_type,
|
||||
metadata, interactive);
|
||||
}
|
||||
g_return_if_fail (GEXIV2_IS_METADATA (metadata));
|
||||
|
||||
if (flags & GIMP_METADATA_LOAD_COMMENT)
|
||||
{
|
||||
GimpAttribute *attribute = NULL;
|
||||
gchar *comment = NULL;
|
||||
gchar *comment;
|
||||
|
||||
attribute = gimp_metadata_get_attribute (metadata, "Exif.Photo.UserComment");
|
||||
if (attribute)
|
||||
comment = gimp_attribute_get_string (attribute);
|
||||
else
|
||||
{
|
||||
attribute = gimp_metadata_get_attribute (metadata, "Exif.Image.ImageDescription");
|
||||
if (attribute)
|
||||
comment = gimp_attribute_get_string (attribute);
|
||||
}
|
||||
comment = gexiv2_metadata_get_tag_interpreted_string (metadata,
|
||||
"Exif.Photo.UserComment");
|
||||
if (! comment)
|
||||
comment = gexiv2_metadata_get_tag_interpreted_string (metadata,
|
||||
"Exif.Image.ImageDescription");
|
||||
|
||||
if (comment)
|
||||
{
|
||||
|
@ -173,6 +155,7 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
gimp_parasite_free (parasite);
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & GIMP_METADATA_LOAD_RESOLUTION)
|
||||
{
|
||||
gdouble xres;
|
||||
|
@ -186,10 +169,19 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
}
|
||||
}
|
||||
|
||||
if (flags & GIMP_METADATA_LOAD_ORIENTATION)
|
||||
{
|
||||
gimp_image_metadata_rotate_query (image_ID, mime_type,
|
||||
metadata, interactive);
|
||||
}
|
||||
|
||||
if (flags & GIMP_METADATA_LOAD_COLORSPACE)
|
||||
{
|
||||
GimpColorProfile *profile = gimp_image_get_color_profile (image_ID);
|
||||
|
||||
/* only look for colorspace information from metadata if the
|
||||
* image didn't contain an embedded color profile
|
||||
*/
|
||||
if (! profile)
|
||||
{
|
||||
GimpMetadataColorspace colorspace;
|
||||
|
@ -218,10 +210,6 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
}
|
||||
|
||||
gimp_image_set_metadata (image_ID, metadata);
|
||||
if (layer_ID > 0)
|
||||
{
|
||||
gimp_item_set_metadata (layer_ID, metadata);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -231,7 +219,7 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
* @suggested_flags: Suggested default values for the @flags passed to
|
||||
* gimp_image_metadata_save_finish()
|
||||
*
|
||||
* Gets the image attributes for saving using
|
||||
* Gets the image metadata for saving it using
|
||||
* gimp_image_metadata_save_finish().
|
||||
*
|
||||
* The @suggested_flags are determined from what kind of metadata
|
||||
|
@ -239,7 +227,7 @@ gimp_image_metadata_load_finish (gint32 image_ID,
|
|||
* value for GIMP_METADATA_SAVE_THUMBNAIL is determined by whether
|
||||
* there was a thumbnail in the previously imported image.
|
||||
*
|
||||
* Returns: The image's attributes, prepared for saving.
|
||||
* Returns: The image's metadata, prepared for saving.
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
|
@ -248,7 +236,7 @@ gimp_image_metadata_save_prepare (gint32 image_ID,
|
|||
const gchar *mime_type,
|
||||
GimpMetadataSaveFlags *suggested_flags)
|
||||
{
|
||||
GimpMetadata *metadata = NULL;
|
||||
GimpMetadata *metadata;
|
||||
|
||||
g_return_val_if_fail (image_ID > 0, NULL);
|
||||
g_return_val_if_fail (mime_type != NULL, NULL);
|
||||
|
@ -256,36 +244,133 @@ gimp_image_metadata_save_prepare (gint32 image_ID,
|
|||
|
||||
*suggested_flags = GIMP_METADATA_SAVE_ALL;
|
||||
|
||||
/* this is a GimpMetadata XML-Packet
|
||||
* it is deserialized to a GimpMetadata object.
|
||||
* Deserialization fills the GExiv2Metadata object of the GimpMetadata*/
|
||||
metadata = gimp_image_get_metadata (image_ID);
|
||||
|
||||
if (metadata)
|
||||
{
|
||||
GDateTime *datetime;
|
||||
const GimpParasite *comment_parasite;
|
||||
const gchar *comment = NULL;
|
||||
gint image_width;
|
||||
gint image_height;
|
||||
gdouble xres;
|
||||
gdouble yres;
|
||||
gchar buffer[32];
|
||||
|
||||
image_width = gimp_image_width (image_ID);
|
||||
image_height = gimp_image_height (image_ID);
|
||||
|
||||
datetime = g_date_time_new_now_local ();
|
||||
|
||||
comment_parasite = gimp_image_get_parasite (image_ID, "gimp-comment");
|
||||
if (comment_parasite)
|
||||
comment = gimp_parasite_data (comment_parasite);
|
||||
|
||||
/* Exif */
|
||||
|
||||
if (! gimp_metadata_has_tag_type (metadata, TAG_EXIF))
|
||||
if (! gexiv2_metadata_has_exif (metadata))
|
||||
*suggested_flags &= ~GIMP_METADATA_SAVE_EXIF;
|
||||
|
||||
if (comment)
|
||||
{
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Exif.Photo.UserComment",
|
||||
comment);
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Exif.Image.ImageDescription",
|
||||
comment);
|
||||
}
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d:%02d:%02d %02d:%02d:%02d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime),
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime));
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Exif.Image.DateTime",
|
||||
buffer);
|
||||
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Exif.Image.Software",
|
||||
PACKAGE_STRING);
|
||||
|
||||
gimp_metadata_set_pixel_size (metadata,
|
||||
image_width, image_height);
|
||||
|
||||
gimp_image_get_resolution (image_ID, &xres, &yres);
|
||||
gimp_metadata_set_resolution (metadata, xres, yres,
|
||||
gimp_image_get_unit (image_ID));
|
||||
|
||||
/* XMP */
|
||||
|
||||
if (! gimp_metadata_has_tag_type (metadata, TAG_XMP))
|
||||
if (! gexiv2_metadata_has_xmp (metadata))
|
||||
*suggested_flags &= ~GIMP_METADATA_SAVE_XMP;
|
||||
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Xmp.dc.Format",
|
||||
mime_type);
|
||||
|
||||
if (! g_strcmp0 (mime_type, "image/tiff"))
|
||||
{
|
||||
/* TIFF specific XMP data */
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", image_width);
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Xmp.tiff.ImageWidth",
|
||||
buffer);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", image_height);
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Xmp.tiff.ImageLength",
|
||||
buffer);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d:%02d:%02d %02d:%02d:%02d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime),
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime));
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Xmp.tiff.DateTime",
|
||||
buffer);
|
||||
}
|
||||
|
||||
/* IPTC */
|
||||
|
||||
if (! gimp_metadata_has_tag_type (metadata, TAG_IPTC))
|
||||
if (! gexiv2_metadata_has_iptc (metadata))
|
||||
*suggested_flags &= ~GIMP_METADATA_SAVE_IPTC;
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d-%d-%d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime));
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Iptc.Application2.DateCreated",
|
||||
buffer);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%02d:%02d:%02d-%02d:%02d",
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime),
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime));
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Iptc.Application2.TimeCreated",
|
||||
buffer);
|
||||
|
||||
g_date_time_unref (datetime);
|
||||
|
||||
/* Thumbnail */
|
||||
|
||||
if (FALSE /* FIXME if (original image had a thumbnail) */)
|
||||
*suggested_flags &= ~GIMP_METADATA_SAVE_THUMBNAIL;
|
||||
|
||||
}
|
||||
|
||||
return metadata;
|
||||
|
@ -316,26 +401,17 @@ gimp_image_metadata_save_finish (gint32 image_ID,
|
|||
GFile *file,
|
||||
GError **error)
|
||||
{
|
||||
GExiv2Metadata *gimpmetadata;
|
||||
GExiv2Metadata *filemetadata;
|
||||
GimpMetadata *gexivdata;
|
||||
gboolean success = FALSE;
|
||||
gchar buffer[32];
|
||||
GDateTime *datetime;
|
||||
const GimpParasite *comment_parasite;
|
||||
const gchar *comment = NULL;
|
||||
gint image_width;
|
||||
gint image_height;
|
||||
gdouble xres;
|
||||
gdouble yres;
|
||||
gchar *value;
|
||||
|
||||
GExiv2Metadata *new_metadata;
|
||||
gboolean support_exif;
|
||||
gboolean support_xmp;
|
||||
gboolean support_iptc;
|
||||
gchar *value;
|
||||
gboolean success = FALSE;
|
||||
gint i;
|
||||
|
||||
g_return_val_if_fail (image_ID > 0, FALSE);
|
||||
g_return_val_if_fail (mime_type != NULL, FALSE);
|
||||
g_return_val_if_fail (GEXIV2_IS_METADATA (metadata), FALSE);
|
||||
g_return_val_if_fail (G_IS_FILE (file), FALSE);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||
|
||||
|
@ -345,199 +421,74 @@ gimp_image_metadata_save_finish (gint32 image_ID,
|
|||
GIMP_METADATA_SAVE_THUMBNAIL)))
|
||||
return TRUE;
|
||||
|
||||
image_width = gimp_image_width (image_ID);
|
||||
image_height = gimp_image_height (image_ID);
|
||||
|
||||
datetime = g_date_time_new_now_local ();
|
||||
|
||||
comment_parasite = gimp_image_get_parasite (image_ID, "gimp-comment");
|
||||
if (comment_parasite)
|
||||
comment = gimp_parasite_data (comment_parasite);
|
||||
|
||||
/* read metadata from saved file */
|
||||
gexivdata = gimp_metadata_load_from_file (file, error);
|
||||
new_metadata = gimp_metadata_load_from_file (file, error);
|
||||
|
||||
if (! gexivdata)
|
||||
if (! new_metadata)
|
||||
return FALSE;
|
||||
|
||||
filemetadata = GEXIV2_METADATA (gexivdata);
|
||||
gimpmetadata = GEXIV2_METADATA (metadata);
|
||||
support_exif = gexiv2_metadata_get_supports_exif (new_metadata);
|
||||
support_xmp = gexiv2_metadata_get_supports_xmp (new_metadata);
|
||||
support_iptc = gexiv2_metadata_get_supports_iptc (new_metadata);
|
||||
|
||||
support_exif = gexiv2_metadata_get_supports_exif (filemetadata);
|
||||
support_xmp = gexiv2_metadata_get_supports_xmp (filemetadata);
|
||||
support_iptc = gexiv2_metadata_get_supports_iptc (filemetadata);
|
||||
|
||||
/* Exif */
|
||||
|
||||
if (flags & GIMP_METADATA_SAVE_EXIF && support_exif)
|
||||
if ((flags & GIMP_METADATA_SAVE_EXIF) && support_exif)
|
||||
{
|
||||
gint i;
|
||||
|
||||
gchar **exif_data = gexiv2_metadata_get_exif_tags (gimpmetadata);
|
||||
gchar **exif_data = gexiv2_metadata_get_exif_tags (metadata);
|
||||
|
||||
for (i = 0; exif_data[i] != NULL; i++)
|
||||
{
|
||||
if (! gexiv2_metadata_has_tag (filemetadata, exif_data[i]) &&
|
||||
if (! gexiv2_metadata_has_tag (new_metadata, exif_data[i]) &&
|
||||
gimp_metadata_is_tag_supported (exif_data[i], mime_type))
|
||||
{
|
||||
value = gexiv2_metadata_get_tag_string (gimpmetadata, exif_data[i]);
|
||||
gexiv2_metadata_set_tag_string (filemetadata, exif_data[i],
|
||||
value = gexiv2_metadata_get_tag_string (metadata, exif_data[i]);
|
||||
gexiv2_metadata_set_tag_string (new_metadata, exif_data[i],
|
||||
value);
|
||||
g_free (value);
|
||||
}
|
||||
}
|
||||
|
||||
g_strfreev (exif_data);
|
||||
|
||||
if (comment)
|
||||
{
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Exif.Photo.UserComment",
|
||||
(gchar *) comment,
|
||||
TYPE_UNICODE);
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Exif.Image.ImageDescription",
|
||||
(gchar *) comment,
|
||||
TYPE_ASCII);
|
||||
}
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d:%02d:%02d %02d:%02d:%02d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime),
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime));
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Exif.Image.DateTime",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Exif.Image.Software",
|
||||
PACKAGE_STRING,
|
||||
TYPE_ASCII);
|
||||
|
||||
gimp_metadata_set_pixel_size (gexivdata,
|
||||
image_width, image_height);
|
||||
|
||||
gimp_image_get_resolution (image_ID, &xres, &yres);
|
||||
gimp_metadata_set_resolution (gexivdata, xres, yres,
|
||||
gimp_image_get_unit (image_ID));
|
||||
}
|
||||
|
||||
/* XMP */
|
||||
|
||||
if (flags & GIMP_METADATA_SAVE_XMP && support_xmp)
|
||||
if ((flags & GIMP_METADATA_SAVE_XMP) && support_xmp)
|
||||
{
|
||||
gint i;
|
||||
|
||||
gchar **xmp_data = gexiv2_metadata_get_xmp_tags (gimpmetadata);
|
||||
gchar **xmp_data = gexiv2_metadata_get_xmp_tags (metadata);
|
||||
|
||||
for (i = 0; xmp_data[i] != NULL; i++)
|
||||
{
|
||||
GimpAttribute *attribute;
|
||||
|
||||
if (! gexiv2_metadata_has_tag (filemetadata, xmp_data[i]) &&
|
||||
if (! gexiv2_metadata_has_tag (new_metadata, xmp_data[i]) &&
|
||||
gimp_metadata_is_tag_supported (xmp_data[i], mime_type))
|
||||
{
|
||||
/* we need the attribute-value here, because some xmp-tags cannot be read out and stored like exif tags:
|
||||
* xmp-tags allow structures like lists. These structures need this special handling. */
|
||||
attribute = gimp_metadata_get_attribute (metadata, xmp_data[i]);
|
||||
gimp_metadata_add_attribute (gexivdata, attribute);
|
||||
value = gexiv2_metadata_get_tag_string (metadata, xmp_data[i]);
|
||||
gexiv2_metadata_set_tag_string (new_metadata, xmp_data[i],
|
||||
value);
|
||||
g_free (value);
|
||||
}
|
||||
}
|
||||
|
||||
g_strfreev (xmp_data);
|
||||
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Xmp.dc.Format",
|
||||
(gchar *) mime_type,
|
||||
TYPE_ASCII);
|
||||
|
||||
if (! g_strcmp0 (mime_type, "image/tiff"))
|
||||
{
|
||||
/* TIFF specific XMP data */
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", image_width);
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Xmp.tiff.ImageWidth",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", image_height);
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Xmp.tiff.ImageLength",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d:%02d:%02d %02d:%02d:%02d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime),
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime));
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Xmp.tiff.DateTime",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
}
|
||||
}
|
||||
|
||||
/* IPTC */
|
||||
|
||||
if (flags & GIMP_METADATA_SAVE_IPTC && support_iptc)
|
||||
if ((flags & GIMP_METADATA_SAVE_IPTC) && support_iptc)
|
||||
{
|
||||
gint i;
|
||||
|
||||
gchar **iptc_data = gexiv2_metadata_get_iptc_tags (gimpmetadata);
|
||||
gchar **iptc_data = gexiv2_metadata_get_iptc_tags (metadata);
|
||||
|
||||
for (i = 0; iptc_data[i] != NULL; i++)
|
||||
{
|
||||
GimpAttribute *attribute;
|
||||
|
||||
if (! gexiv2_metadata_has_tag (filemetadata, iptc_data[i]) &&
|
||||
if (! gexiv2_metadata_has_tag (new_metadata, iptc_data[i]) &&
|
||||
gimp_metadata_is_tag_supported (iptc_data[i], mime_type))
|
||||
{
|
||||
/* we need the attribute-value here, because iptc-tags of TYPE_MULTIPLE cannot be read out and stored like exif tags:
|
||||
* These tags need this special handling. */
|
||||
attribute = gimp_metadata_get_attribute (metadata, iptc_data[i]);
|
||||
gimp_metadata_add_attribute (gexivdata, attribute);
|
||||
value = gexiv2_metadata_get_tag_string (metadata, iptc_data[i]);
|
||||
gexiv2_metadata_set_tag_string (new_metadata, iptc_data[i],
|
||||
value);
|
||||
g_free (value);
|
||||
}
|
||||
}
|
||||
|
||||
g_strfreev (iptc_data);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%d-%d-%d",
|
||||
g_date_time_get_year (datetime),
|
||||
g_date_time_get_month (datetime),
|
||||
g_date_time_get_day_of_month (datetime));
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Iptc.Application2.DateCreated",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
"%02d:%02d:%02d",
|
||||
g_date_time_get_hour (datetime),
|
||||
g_date_time_get_minute (datetime),
|
||||
g_date_time_get_second (datetime));
|
||||
gimp_metadata_new_attribute (gexivdata,
|
||||
"Iptc.Application2.TimeCreated",
|
||||
buffer,
|
||||
TYPE_ASCII);
|
||||
|
||||
g_date_time_unref (datetime);
|
||||
|
||||
}
|
||||
|
||||
/* Thumbnail */
|
||||
|
||||
if ((flags & GIMP_METADATA_SAVE_THUMBNAIL) && g_strcmp0 (mime_type, "image/tiff"))
|
||||
if (flags & GIMP_METADATA_SAVE_THUMBNAIL)
|
||||
{
|
||||
GdkPixbuf *thumb_pixbuf;
|
||||
gchar *thumb_buffer;
|
||||
|
@ -573,27 +524,27 @@ gimp_image_metadata_save_finish (gint32 image_ID,
|
|||
{
|
||||
gchar buffer[32];
|
||||
|
||||
gexiv2_metadata_set_exif_thumbnail_from_buffer (filemetadata,
|
||||
gexiv2_metadata_set_exif_thumbnail_from_buffer (new_metadata,
|
||||
(guchar *) thumb_buffer,
|
||||
count);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", thumbw);
|
||||
gexiv2_metadata_set_tag_string (filemetadata,
|
||||
gexiv2_metadata_set_tag_string (new_metadata,
|
||||
"Exif.Thumbnail.ImageWidth",
|
||||
buffer);
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), "%d", thumbh);
|
||||
gexiv2_metadata_set_tag_string (filemetadata,
|
||||
gexiv2_metadata_set_tag_string (new_metadata,
|
||||
"Exif.Thumbnail.ImageLength",
|
||||
buffer);
|
||||
|
||||
gexiv2_metadata_set_tag_string (filemetadata,
|
||||
gexiv2_metadata_set_tag_string (new_metadata,
|
||||
"Exif.Thumbnail.BitsPerSample",
|
||||
"8 8 8");
|
||||
gexiv2_metadata_set_tag_string (filemetadata,
|
||||
gexiv2_metadata_set_tag_string (new_metadata,
|
||||
"Exif.Thumbnail.SamplesPerPixel",
|
||||
"3");
|
||||
gexiv2_metadata_set_tag_string (filemetadata,
|
||||
gexiv2_metadata_set_tag_string (new_metadata,
|
||||
"Exif.Thumbnail.PhotometricInterpretation",
|
||||
"6");
|
||||
|
||||
|
@ -603,9 +554,9 @@ gimp_image_metadata_save_finish (gint32 image_ID,
|
|||
g_object_unref (thumb_pixbuf);
|
||||
}
|
||||
|
||||
success = gimp_metadata_save_to_file (gexivdata, file, error);
|
||||
success = gimp_metadata_save_to_file (new_metadata, file, error);
|
||||
|
||||
g_object_unref (filemetadata);
|
||||
g_object_unref (new_metadata);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
@ -615,7 +566,6 @@ gimp_image_metadata_load_thumbnail (GFile *file,
|
|||
GError **error)
|
||||
{
|
||||
GimpMetadata *metadata;
|
||||
GExiv2Metadata *gexiv2metadata;
|
||||
GInputStream *input_stream;
|
||||
GdkPixbuf *pixbuf;
|
||||
guint8 *thumbnail_buffer;
|
||||
|
@ -626,13 +576,10 @@ gimp_image_metadata_load_thumbnail (GFile *file,
|
|||
g_return_val_if_fail (error == NULL || *error == NULL, -1);
|
||||
|
||||
metadata = gimp_metadata_load_from_file (file, error);
|
||||
|
||||
gexiv2metadata = GEXIV2_METADATA (metadata);
|
||||
|
||||
if (! metadata)
|
||||
return -1;
|
||||
|
||||
if (! gexiv2_metadata_get_exif_thumbnail (gexiv2metadata,
|
||||
if (! gexiv2_metadata_get_exif_thumbnail (metadata,
|
||||
&thumbnail_buffer,
|
||||
&thumbnail_size))
|
||||
{
|
||||
|
@ -664,7 +611,7 @@ gimp_image_metadata_load_thumbnail (GFile *file,
|
|||
gimp_image_insert_layer (image_ID, layer_ID, -1, 0);
|
||||
|
||||
gimp_image_metadata_rotate (image_ID,
|
||||
gexiv2_metadata_get_orientation (gexiv2metadata));
|
||||
gexiv2_metadata_get_orientation (metadata));
|
||||
}
|
||||
|
||||
g_object_unref (metadata);
|
||||
|
@ -779,15 +726,12 @@ gimp_image_metadata_rotate_query (gint32 image_ID,
|
|||
GimpMetadata *metadata,
|
||||
gboolean interactive)
|
||||
{
|
||||
GExiv2Metadata *gexiv2metadata;
|
||||
GimpParasite *parasite;
|
||||
gchar *parasite_name;
|
||||
GExiv2Orientation orientation;
|
||||
gboolean query = interactive;
|
||||
|
||||
gexiv2metadata = GEXIV2_METADATA (metadata);
|
||||
|
||||
orientation = gexiv2_metadata_get_orientation (gexiv2metadata);
|
||||
orientation = gexiv2_metadata_get_orientation (metadata);
|
||||
|
||||
if (orientation <= GEXIV2_ORIENTATION_NORMAL ||
|
||||
orientation > GEXIV2_ORIENTATION_MAX)
|
||||
|
@ -827,9 +771,9 @@ gimp_image_metadata_rotate_query (gint32 image_ID,
|
|||
|
||||
gimp_image_metadata_rotate (image_ID, orientation);
|
||||
|
||||
gexiv2_metadata_set_tag_string (gexiv2metadata,
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Exif.Image.Orientation", "1");
|
||||
gexiv2_metadata_set_tag_string (gexiv2metadata,
|
||||
gexiv2_metadata_set_tag_string (metadata,
|
||||
"Xmp.tiff.Orientation", "1");
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,6 @@ GimpMetadata * gimp_image_metadata_load_prepare (gint32 image_ID
|
|||
GFile *file,
|
||||
GError **error);
|
||||
void gimp_image_metadata_load_finish (gint32 image_ID,
|
||||
gint32 layer_ID,
|
||||
const gchar *mime_type,
|
||||
GimpMetadata *metadata,
|
||||
GimpMetadataLoadFlags flags,
|
||||
|
|
|
@ -1,86 +0,0 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpitem.c
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gimp.h"
|
||||
#include "gimpitem.h"
|
||||
|
||||
|
||||
/**
|
||||
* gimp_item_get_metadata:
|
||||
* @item_ID: The item.
|
||||
*
|
||||
* Returns the item's metadata.
|
||||
*
|
||||
* Returns metadata from the item.
|
||||
*
|
||||
* Returns: The metadata, or %NULL if there is none.
|
||||
*
|
||||
* Since: GIMP 2.10
|
||||
**/
|
||||
GimpMetadata *
|
||||
gimp_item_get_metadata (gint32 item_ID)
|
||||
{
|
||||
GimpMetadata *metadata = NULL;
|
||||
gchar *metadata_string;
|
||||
|
||||
metadata_string = _gimp_item_get_metadata (item_ID);
|
||||
if (metadata_string)
|
||||
{
|
||||
metadata = gimp_metadata_deserialize (metadata_string);
|
||||
g_free (metadata_string);
|
||||
}
|
||||
|
||||
return metadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_item_set_metadata:
|
||||
* @item_ID: The item.
|
||||
* @metadata: The GimpMetadata object.
|
||||
*
|
||||
* Set the item's metadata.
|
||||
*
|
||||
* Sets metadata on the item, or deletes it if
|
||||
* @metadata is %NULL.
|
||||
*
|
||||
* Returns: TRUE on success.
|
||||
*
|
||||
* Since: GIMP 2.10
|
||||
**/
|
||||
gboolean
|
||||
gimp_item_set_metadata (gint32 item_ID,
|
||||
GimpMetadata *metadata)
|
||||
{
|
||||
gchar *metadata_string = NULL;
|
||||
gboolean success;
|
||||
|
||||
if (metadata)
|
||||
metadata_string = gimp_metadata_serialize (metadata);
|
||||
|
||||
success = _gimp_item_set_metadata (item_ID, metadata_string);
|
||||
|
||||
if (metadata_string)
|
||||
g_free (metadata_string);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
/* LIBGIMP - The GIMP Library
|
||||
* Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpitem.h
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined (__GIMP_H_INSIDE__) && !defined (GIMP_COMPILATION)
|
||||
#error "Only <libgimp/gimp.h> can be included directly."
|
||||
#endif
|
||||
|
||||
#ifndef __GIMP_ITEM_H__
|
||||
#define __GIMP_ITEM_H__
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/* For information look into the C source or the html documentation */
|
||||
|
||||
|
||||
gboolean gimp_item_set_metadata (gint32 item_ID,
|
||||
GimpMetadata *metadata);
|
||||
GimpMetadata * gimp_item_get_metadata (gint32 item_ID);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_ITEM_H__ */
|
|
@ -934,68 +934,6 @@ gimp_item_set_tattoo (gint32 item_ID,
|
|||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gimp_item_get_metadata:
|
||||
* @item_ID: The item.
|
||||
*
|
||||
* Returns the item's metadata.
|
||||
*
|
||||
* Returns metadata from the item.
|
||||
*
|
||||
* Returns: The metadata as a xml string.
|
||||
**/
|
||||
gchar *
|
||||
_gimp_item_get_metadata (gint32 item_ID)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gchar *metadata_string = NULL;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp-item-get-metadata",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_ITEM, item_ID,
|
||||
GIMP_PDB_END);
|
||||
|
||||
if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
|
||||
metadata_string = g_strdup (return_vals[1].data.d_string);
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return metadata_string;
|
||||
}
|
||||
|
||||
/**
|
||||
* _gimp_item_set_metadata:
|
||||
* @item_ID: The item.
|
||||
* @metadata_string: The metadata as a xml string.
|
||||
*
|
||||
* Set the item's metadata.
|
||||
*
|
||||
* Sets metadata on the item.
|
||||
*
|
||||
* Returns: TRUE on success.
|
||||
**/
|
||||
gboolean
|
||||
_gimp_item_set_metadata (gint32 item_ID,
|
||||
const gchar *metadata_string)
|
||||
{
|
||||
GimpParam *return_vals;
|
||||
gint nreturn_vals;
|
||||
gboolean success = TRUE;
|
||||
|
||||
return_vals = gimp_run_procedure ("gimp-item-set-metadata",
|
||||
&nreturn_vals,
|
||||
GIMP_PDB_ITEM, item_ID,
|
||||
GIMP_PDB_STRING, metadata_string,
|
||||
GIMP_PDB_END);
|
||||
|
||||
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
||||
|
||||
gimp_destroy_params (return_vals, nreturn_vals);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_item_attach_parasite:
|
||||
* @item_ID: The item.
|
||||
|
|
|
@ -67,9 +67,6 @@ gboolean gimp_item_set_color_tag (gint32 item_I
|
|||
gint gimp_item_get_tattoo (gint32 item_ID);
|
||||
gboolean gimp_item_set_tattoo (gint32 item_ID,
|
||||
gint tattoo);
|
||||
G_GNUC_INTERNAL gchar* _gimp_item_get_metadata (gint32 item_ID);
|
||||
G_GNUC_INTERNAL gboolean _gimp_item_set_metadata (gint32 item_ID,
|
||||
const gchar *metadata_string);
|
||||
gboolean gimp_item_attach_parasite (gint32 item_ID,
|
||||
const GimpParasite *parasite);
|
||||
gboolean gimp_item_detach_parasite (gint32 item_ID,
|
||||
|
|
|
@ -90,8 +90,6 @@ libgimpbase_sources = \
|
|||
gimpparam.h \
|
||||
gimpversion.h \
|
||||
\
|
||||
gimpattribute.c \
|
||||
gimpattribute.h \
|
||||
gimpbase-private.c \
|
||||
gimpbase-private.h \
|
||||
gimpchecks.c \
|
||||
|
@ -112,8 +110,6 @@ libgimpbase_sources = \
|
|||
gimpparasiteio.h \
|
||||
gimpprotocol.c \
|
||||
gimpprotocol.h \
|
||||
gimprational.c \
|
||||
gimprational.h \
|
||||
gimprectangle.c \
|
||||
gimprectangle.h \
|
||||
gimpreloc.c \
|
||||
|
@ -147,7 +143,6 @@ libgimpbaseinclude_HEADERS = \
|
|||
gimpparam.h \
|
||||
gimpversion.h \
|
||||
\
|
||||
gimpattribute.h \
|
||||
gimpchecks.h \
|
||||
gimpdatafiles.h \
|
||||
gimpenv.h \
|
||||
|
@ -155,7 +150,6 @@ libgimpbaseinclude_HEADERS = \
|
|||
gimpmetadata.h \
|
||||
gimpparasite.h \
|
||||
gimpparasiteio.h \
|
||||
gimprational.h \
|
||||
gimprectangle.h \
|
||||
gimpsignal.h \
|
||||
gimpunit.h \
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
/* gimpattribute.h generated by valac 0.24.0, the Vala compiler, do not modify */
|
||||
|
||||
|
||||
#ifndef __GIMPATTRIBUTE_H__
|
||||
#define __GIMPATTRIBUTE_H__
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_ATTRIBUTE (gimp_attribute_get_type ())
|
||||
#define GIMP_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_ATTRIBUTE, GimpAttribute))
|
||||
#define GIMP_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_ATTRIBUTE, GimpAttributeClass))
|
||||
#define GIMP_IS_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_ATTRIBUTE))
|
||||
#define GIMP_IS_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_ATTRIBUTE))
|
||||
#define GIMP_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_ATTRIBUTE, GimpAttributeClass))
|
||||
#define GIMP_ATTRIBUTE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GIMP_TYPE_ATTRIBUTE, GimpAttributePrivate))
|
||||
|
||||
#define GIMP_TYPE_ATTRIBUTE_TAG_TYPE (gimp_attribute_tag_type_get_type ())
|
||||
|
||||
GType gimp_attribute_tag_type_get_type (void) G_GNUC_CONST;
|
||||
|
||||
typedef enum {
|
||||
TYPE_INVALID,
|
||||
TYPE_LONG,
|
||||
TYPE_SLONG,
|
||||
TYPE_FLOAT,
|
||||
TYPE_DOUBLE,
|
||||
TYPE_SHORT,
|
||||
TYPE_SSHORT,
|
||||
TYPE_DATE,
|
||||
TYPE_TIME,
|
||||
TYPE_ASCII,
|
||||
TYPE_UNICODE,
|
||||
TYPE_BYTE,
|
||||
TYPE_MULTIPLE,
|
||||
TYPE_RATIONAL,
|
||||
TYPE_SRATIONAL,
|
||||
TYPE_UNKNOWN,
|
||||
NUM_VALUE_TYPES
|
||||
} GimpAttributeValueType;
|
||||
|
||||
typedef enum {
|
||||
STRUCTURE_TYPE_BAG,
|
||||
STRUCTURE_TYPE_SEQ,
|
||||
STRUCTURE_TYPE_ALT,
|
||||
STRUCTURE_TYPE_LANG,
|
||||
STRUCTURE_TYPE_NONE,
|
||||
STRUCTURE_TYPE_STRUCT,
|
||||
NUM_STRUCTURE_TYPES
|
||||
} GimpAttributeStructureType;
|
||||
|
||||
typedef enum {
|
||||
TAG_INVALID,
|
||||
TAG_EXIF,
|
||||
TAG_XMP,
|
||||
TAG_IPTC,
|
||||
TAG_GIMP,
|
||||
TAG_MISC,
|
||||
NUM_TAG_TYPES
|
||||
} GimpAttributeTagType;
|
||||
|
||||
GType gimp_attribute_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GimpAttribute* gimp_attribute_new_string (const gchar *name,
|
||||
gchar *value,
|
||||
GimpAttributeValueType type);
|
||||
const gchar* gimp_attribute_get_interpreted_string (GimpAttribute *attribute);
|
||||
void gimp_attribute_set_interpreted_string (GimpAttribute *attribute,
|
||||
const gchar *value);
|
||||
GimpAttribute* gimp_attribute_copy (GimpAttribute *attribute);
|
||||
gboolean gimp_attribute_is_valid (GimpAttribute *attribute);
|
||||
const gchar* gimp_attribute_get_attribute_type (GimpAttribute *attribute);
|
||||
const gchar* gimp_attribute_get_attribute_ifd (GimpAttribute *attribute);
|
||||
const gchar* gimp_attribute_get_attribute_tag (GimpAttribute *attribute);
|
||||
const gboolean gimp_attribute_is_new_namespace (GimpAttribute *attribute);
|
||||
const gchar* gimp_attribute_get_name (GimpAttribute *attribute);
|
||||
const gchar* gimp_attribute_get_sortable_name (GimpAttribute *attribute);
|
||||
GValue gimp_attribute_get_value (GimpAttribute *attribute);
|
||||
gchar* gimp_attribute_get_string (GimpAttribute *attribute);
|
||||
GimpAttributeTagType gimp_attribute_get_tag_type (GimpAttribute *attribute);
|
||||
GimpAttributeValueType gimp_attribute_get_value_type_from_string (const gchar *string);
|
||||
GimpAttributeValueType gimp_attribute_get_value_type (GimpAttribute *attribute);
|
||||
void gimp_attribute_set_value_type (GimpAttribute *attribute,
|
||||
GimpAttributeValueType value_type);
|
||||
gboolean gimp_attribute_has_structure (GimpAttribute *attribute);
|
||||
GSList* gimp_attribute_get_attribute_structure (GimpAttribute *attribute);
|
||||
void gimp_attribute_set_structure_type (GimpAttribute *attribute,
|
||||
GimpAttributeStructureType value);
|
||||
GimpAttributeStructureType gimp_attribute_get_structure_type (GimpAttribute *attribute);
|
||||
gdouble gimp_attribute_get_gps_degree (GimpAttribute *attribute);
|
||||
gchar* gimp_attribute_get_xml (GimpAttribute *attribute);
|
||||
void gimp_attribute_print (GimpAttribute *attribute);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
|
@ -1,29 +1,6 @@
|
|||
EXPORTS
|
||||
gimp_add_mask_type_get_type
|
||||
gimp_any_to_utf8
|
||||
gimp_attribute_copy
|
||||
gimp_attribute_get_attribute_type
|
||||
gimp_attribute_get_attribute_ifd
|
||||
gimp_attribute_get_attribute_structure
|
||||
gimp_attribute_get_attribute_tag
|
||||
gimp_attribute_get_interpreted_string
|
||||
gimp_attribute_get_name
|
||||
gimp_attribute_get_sortable_name
|
||||
gimp_attribute_get_string
|
||||
gimp_attribute_get_structure_type
|
||||
gimp_attribute_get_tag_type
|
||||
gimp_attribute_get_value
|
||||
gimp_attribute_get_value_type
|
||||
gimp_attribute_get_value_type_from_string
|
||||
gimp_attribute_get_gps_degree
|
||||
gimp_attribute_get_xml
|
||||
gimp_attribute_has_structure
|
||||
gimp_attribute_is_valid
|
||||
gimp_attribute_new_string
|
||||
gimp_attribute_print
|
||||
gimp_attribute_set_interpreted_string
|
||||
gimp_attribute_set_structure_type
|
||||
gimp_attribute_set_value_type
|
||||
gimp_base_init
|
||||
gimp_blend_mode_get_type
|
||||
gimp_brush_generated_shape_get_type
|
||||
|
@ -93,36 +70,21 @@ EXPORTS
|
|||
gimp_memsize_to_string
|
||||
gimp_merge_type_get_type
|
||||
gimp_message_handler_type_get_type
|
||||
gimp_metadata_add_attribute
|
||||
gimp_metadata_deserialize
|
||||
gimp_metadata_duplicate
|
||||
gimp_metadata_get_attribute
|
||||
gimp_metadata_get_colorspace
|
||||
gimp_metadata_get_resolution
|
||||
gimp_metadata_get_table
|
||||
gimp_metadata_get_type
|
||||
gimp_metadata_has_attribute
|
||||
gimp_metadata_has_tag_type
|
||||
gimp_metadata_is_tag_supported
|
||||
gimp_metadata_iter_init
|
||||
gimp_metadata_iter_next
|
||||
gimp_metadata_load_from_file
|
||||
gimp_metadata_new
|
||||
gimp_metadata_new_attribute
|
||||
gimp_metadata_new_gexiv2metadata
|
||||
gimp_metadata_print
|
||||
gimp_metadata_remove_attribute
|
||||
gimp_metadata_has_attribute
|
||||
gimp_metadata_save_to_file
|
||||
gimp_metadata_serialize
|
||||
gimp_metadata_set_bits_per_sample
|
||||
gimp_metadata_set_colorspace
|
||||
gimp_metadata_save_to_file
|
||||
gimp_metadata_set_from_exif
|
||||
gimp_metadata_set_from_xmp
|
||||
gimp_metadata_set_pixel_size
|
||||
gimp_metadata_set_resolution
|
||||
gimp_metadata_size
|
||||
gimp_metadata_to_xmp_packet
|
||||
gimp_micro_version
|
||||
gimp_minor_version
|
||||
gimp_offset_type_get_type
|
||||
|
@ -248,5 +210,3 @@ EXPORTS
|
|||
gp_tile_ack_write
|
||||
gp_tile_data_write
|
||||
gp_tile_req_write
|
||||
rational_free
|
||||
srational_free
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
|
||||
#include <libgimpbase/gimpbasetypes.h>
|
||||
|
||||
#include <libgimpbase/gimpattribute.h>
|
||||
#include <libgimpbase/gimpchecks.h>
|
||||
#include <libgimpbase/gimpcpuaccel.h>
|
||||
#include <libgimpbase/gimpdatafiles.h>
|
||||
|
|
|
@ -45,8 +45,6 @@ G_BEGIN_DECLS
|
|||
#endif
|
||||
|
||||
|
||||
typedef struct _GimpAttribute GimpAttribute;
|
||||
typedef struct _GimpMetadata GimpMetadata;
|
||||
typedef struct _GimpParasite GimpParasite;
|
||||
typedef struct _GimpDatafileData GimpDatafileData;
|
||||
typedef struct _GimpEnumDesc GimpEnumDesc;
|
||||
|
@ -57,6 +55,7 @@ typedef struct _GimpValueArray GimpValueArray;
|
|||
typedef void (* GimpDatafileLoaderFunc) (const GimpDatafileData *file_data,
|
||||
gpointer user_data);
|
||||
|
||||
typedef struct _GExiv2Metadata GimpMetadata;
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,19 +1,29 @@
|
|||
/* LIBGIMPBASE - The GIMP Basic Library
|
||||
* Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
|
||||
*
|
||||
* gimpmetadata.h
|
||||
* Copyright (C) 2013 Hartmut Kuhse <hartmutkuhse@src.gnome.org>
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GIMPMETADATA_H__
|
||||
#define __GIMPMETADATA_H__
|
||||
#ifndef __GIMP_METADATA_H__
|
||||
#define __GIMP_METADATA_H__
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#include <gexiv2/gexiv2.h>
|
||||
|
||||
#define TYPE_GIMP_METADATA (gimp_metadata_get_type ())
|
||||
#define GIMP_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GIMP_METADATA, GimpMetadata))
|
||||
#define GIMP_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GIMP_METADATA, GimpMetadataClass))
|
||||
#define IS_GIMP_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GIMP_METADATA))
|
||||
#define IS_GIMP_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GIMP_METADATA))
|
||||
#define GIMP_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GIMP_METADATA, GimpMetadataClass))
|
||||
#define GIMP_METADATA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_GIMP_METADATA, GimpMetadataPrivate))
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GIMP_METADATA_LOAD_COMMENT = 1 << 0,
|
||||
|
@ -42,40 +52,19 @@ typedef enum
|
|||
GIMP_METADATA_COLORSPACE_ADOBERGB
|
||||
} GimpMetadataColorspace;
|
||||
|
||||
GType gimp_metadata_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GimpMetadata * gimp_metadata_new (void);
|
||||
gint gimp_metadata_size (GimpMetadata *metadata);
|
||||
GimpMetadata * gimp_metadata_duplicate (GimpMetadata *metadata);
|
||||
GHashTable * gimp_metadata_get_table (GimpMetadata *metadata);
|
||||
void gimp_metadata_add_attribute (GimpMetadata *metadata,
|
||||
GimpAttribute *attribute);
|
||||
GimpAttribute * gimp_metadata_get_attribute (GimpMetadata *metadata,
|
||||
const gchar *name);
|
||||
gboolean gimp_metadata_remove_attribute (GimpMetadata *metadata,
|
||||
const gchar *name);
|
||||
gboolean gimp_metadata_has_attribute (GimpMetadata *metadata,
|
||||
const gchar *name);
|
||||
gboolean gimp_metadata_new_attribute (GimpMetadata *metadata,
|
||||
const gchar *name,
|
||||
gchar *value,
|
||||
GimpAttributeValueType type);
|
||||
|
||||
GimpMetadata * gimp_metadata_deserialize (const gchar *metadata_xml);
|
||||
gchar * gimp_metadata_serialize (GimpMetadata *metadata);
|
||||
GimpMetadata * gimp_metadata_deserialize (const gchar *xml);
|
||||
void gimp_metadata_print (GimpMetadata *metadata);
|
||||
const gchar * gimp_metadata_to_xmp_packet (GimpMetadata *metadata,
|
||||
const gchar *mime_type);
|
||||
gboolean gimp_metadata_has_tag_type (GimpMetadata *metadata,
|
||||
GimpAttributeTagType tag_type);
|
||||
GList * gimp_metadata_iter_init (GimpMetadata *metadata,
|
||||
GList **iter);
|
||||
gboolean gimp_metadata_iter_next (GimpMetadata *metadata,
|
||||
GimpAttribute **attribute,
|
||||
GList **prev);
|
||||
|
||||
GimpMetadata * gimp_metadata_load_from_file (GFile *file,
|
||||
GError **error);
|
||||
gboolean gimp_metadata_save_to_file (GimpMetadata *metadata,
|
||||
GFile *file,
|
||||
GError **error);
|
||||
GimpMetadata * gimp_metadata_load_from_file (GFile *file,
|
||||
GError **error);
|
||||
|
||||
gboolean gimp_metadata_set_from_exif (GimpMetadata *metadata,
|
||||
const guchar *exif_data,
|
||||
gint exif_data_length,
|
||||
|
@ -84,9 +73,13 @@ gboolean gimp_metadata_set_from_xmp
|
|||
const guchar *xmp_data,
|
||||
gint xmp_data_length,
|
||||
GError **error);
|
||||
gboolean gimp_metadata_is_tag_supported (const gchar *tag,
|
||||
const gchar *mime_type);
|
||||
GimpMetadataColorspace gimp_metadata_get_colorspace (GimpMetadata *metadata);
|
||||
|
||||
void gimp_metadata_set_pixel_size (GimpMetadata *metadata,
|
||||
gint width,
|
||||
gint height);
|
||||
void gimp_metadata_set_bits_per_sample (GimpMetadata *metadata,
|
||||
gint bits_per_sample);
|
||||
|
||||
gboolean gimp_metadata_get_resolution (GimpMetadata *metadata,
|
||||
gdouble *xres,
|
||||
gdouble *yres,
|
||||
|
@ -95,20 +88,15 @@ void gimp_metadata_set_resolution
|
|||
gdouble xres,
|
||||
gdouble yres,
|
||||
GimpUnit unit);
|
||||
void gimp_metadata_set_bits_per_sample (GimpMetadata *metadata,
|
||||
gint bits_per_sample);
|
||||
void gimp_metadata_set_pixel_size (GimpMetadata *metadata,
|
||||
gint width,
|
||||
gint height);
|
||||
|
||||
GimpMetadataColorspace
|
||||
gimp_metadata_get_colorspace (GimpMetadata *metadata);
|
||||
void gimp_metadata_set_colorspace (GimpMetadata *metadata,
|
||||
GimpMetadataColorspace colorspace);
|
||||
//GimpMetadata * gimp_metadata_from_gexiv2metadata (GimpMetadata *metadata,
|
||||
// GimpMetadata *gexivdata);
|
||||
//void gimp_metadata_to_gexiv2metadata (GimpMetadata *metadata,
|
||||
// GimpMetadata *gexivdata,
|
||||
// const gchar *mime_type);
|
||||
|
||||
gboolean gimp_metadata_is_tag_supported (const gchar *tag,
|
||||
const gchar *mime_type);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
#endif /* __GIMP_METADATA_H__ */
|
||||
|
|
|
@ -1,301 +0,0 @@
|
|||
/*
|
||||
* gimprational.c
|
||||
*
|
||||
* Created on: 19.09.2014
|
||||
* Author: kuhse
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "gimprational.h"
|
||||
|
||||
|
||||
static gpointer rational_copy (gpointer data);
|
||||
static gpointer srational_copy (gpointer data);
|
||||
|
||||
|
||||
G_DEFINE_BOXED_TYPE (Rational, rational,
|
||||
rational_copy,
|
||||
rational_free)
|
||||
G_DEFINE_BOXED_TYPE (SRational, srational,
|
||||
srational_copy,
|
||||
srational_free)
|
||||
|
||||
|
||||
/**
|
||||
* string_to_rational:
|
||||
*
|
||||
* @string: a #gchar array
|
||||
* @rational: a pointer to a #Rational struct
|
||||
*
|
||||
* converts a string, representing one/more rational values into
|
||||
* a #Rational struct.
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
void
|
||||
string_to_rational (gchar *string, Rational **rational)
|
||||
{
|
||||
gchar **nom;
|
||||
gchar **rats;
|
||||
gint count;
|
||||
gint i;
|
||||
Rational *rval;
|
||||
GArray *rational_array;
|
||||
|
||||
rats = g_strsplit (string, " ", -1);
|
||||
|
||||
count = 0;
|
||||
while (rats[count])
|
||||
count++;
|
||||
|
||||
rational_array = g_array_new (TRUE, TRUE, sizeof (RationalValue));
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
RationalValue or;
|
||||
|
||||
nom = g_strsplit (rats[i], "/", 2);
|
||||
|
||||
if (nom[0] && nom[1])
|
||||
{
|
||||
or.nom = (guint) atoi (nom [0]);
|
||||
or.denom = (guint) atoi (nom [1]);
|
||||
}
|
||||
else
|
||||
count--;
|
||||
|
||||
rational_array = g_array_append_val (rational_array, or);
|
||||
|
||||
g_strfreev (nom);
|
||||
}
|
||||
|
||||
g_strfreev (rats);
|
||||
|
||||
rval = g_slice_new (Rational);
|
||||
|
||||
rval->rational_array = rational_array;
|
||||
rval->length = count;
|
||||
|
||||
*rational = rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* rational_to_string:
|
||||
*
|
||||
* @rational : a pointer to a @Rational struct
|
||||
* @nom : a pointer to a #gint array
|
||||
* @denom : a pointer to a #gint array
|
||||
* @length : a pointer to a #gint
|
||||
*
|
||||
* converts a @rational to nom/denum gchar arrays
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
void
|
||||
rational_to_int (Rational *rational, gint **nom, gint **denom, gint *length)
|
||||
{
|
||||
gint i;
|
||||
gint *_nom;
|
||||
gint *_denom;
|
||||
|
||||
g_return_if_fail (rational != NULL);
|
||||
|
||||
_nom = g_new (gint, rational->length);
|
||||
_denom = g_new (gint, rational->length);
|
||||
|
||||
for (i = 0; i < rational->length; i++)
|
||||
{
|
||||
RationalValue one;
|
||||
one = g_array_index(rational->rational_array, RationalValue, i);
|
||||
_nom[i] = one.nom;
|
||||
_denom[i] = one.denom;
|
||||
}
|
||||
|
||||
*nom = _nom;
|
||||
*denom = _denom;
|
||||
*length = rational->length;
|
||||
}
|
||||
|
||||
/**
|
||||
* rational_copy:
|
||||
*
|
||||
* @data: a #gpointer to a #Rational structure
|
||||
*
|
||||
* copy part of the #Rational type
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
static gpointer
|
||||
rational_copy (gpointer data)
|
||||
{
|
||||
struct _Rational *rational = (struct _Rational *) data;
|
||||
struct _Rational *copy = g_slice_new (Rational);
|
||||
gint i;
|
||||
GArray *rlacp;
|
||||
|
||||
if (!data)
|
||||
return NULL;
|
||||
|
||||
rlacp = g_array_new (TRUE, TRUE, sizeof (RationalValue));
|
||||
|
||||
for (i = 0; i < rational->length; i++)
|
||||
{
|
||||
RationalValue or;
|
||||
RationalValue cor;
|
||||
|
||||
or = g_array_index (rational->rational_array, RationalValue, i);
|
||||
|
||||
cor.nom = or.nom;
|
||||
cor.denom = or.denom;
|
||||
|
||||
rlacp = g_array_append_val (rlacp, cor);
|
||||
}
|
||||
|
||||
copy->rational_array = rlacp;
|
||||
copy->length = rational->length;
|
||||
|
||||
return (gpointer) copy;
|
||||
}
|
||||
|
||||
/**
|
||||
* rational_free:
|
||||
*
|
||||
* @data: a #gpointer to a #Rational structure
|
||||
*
|
||||
* free part of the #Rational type
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
void
|
||||
rational_free (gpointer data)
|
||||
{
|
||||
struct _Rational *rational = (struct _Rational *) data;
|
||||
|
||||
if (rational)
|
||||
{
|
||||
if (rational->rational_array)
|
||||
g_array_free (rational->rational_array, TRUE);
|
||||
rational->length = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* string_to_srational:
|
||||
*
|
||||
* @string: a #gchar array
|
||||
* @srational: a pointer to a #Rational struct
|
||||
*
|
||||
* converts a string, representing one/more srational values into
|
||||
* a #SRational struct.
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
void
|
||||
string_to_srational (gchar *string, SRational **srational)
|
||||
{
|
||||
gchar **nom;
|
||||
gchar **srats;
|
||||
gint count;
|
||||
gint i;
|
||||
SRational *srval;
|
||||
GArray *srational_array;
|
||||
|
||||
srats = g_strsplit (string, " ", -1);
|
||||
|
||||
count = 0;
|
||||
while (srats[count])
|
||||
count++;
|
||||
|
||||
srational_array = g_array_new (TRUE, TRUE, sizeof (SRationalValue));
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
SRationalValue or;
|
||||
|
||||
nom = g_strsplit (srats[i], "/", 2);
|
||||
|
||||
if (nom[0] && nom[1])
|
||||
{
|
||||
or.nom = (gint) atoi (nom [0]);
|
||||
or.denom = (guint) atoi (nom [1]);
|
||||
}
|
||||
else
|
||||
count--;
|
||||
|
||||
srational_array = g_array_append_val (srational_array, or);
|
||||
|
||||
g_strfreev (nom);
|
||||
}
|
||||
|
||||
g_strfreev (srats);
|
||||
|
||||
srval = g_slice_new (SRational);
|
||||
|
||||
srval->srational_array = srational_array;
|
||||
srval->length = count;
|
||||
|
||||
*srational = srval;
|
||||
}
|
||||
/**
|
||||
* srational_copy:
|
||||
*
|
||||
* @data: a #gpointer to a #SRational structure
|
||||
*
|
||||
* copy part of the #SRational type
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
static gpointer
|
||||
srational_copy (gpointer data)
|
||||
{
|
||||
struct _SRational *srational = (struct _SRational *) data;
|
||||
struct _SRational *copy = g_slice_new (SRational);
|
||||
gint i;
|
||||
GArray *rlacp;
|
||||
|
||||
if (!data)
|
||||
return NULL;
|
||||
|
||||
rlacp = g_array_new (TRUE, TRUE, sizeof (SRationalValue));
|
||||
|
||||
for (i = 0; i < srational->length; i++)
|
||||
{
|
||||
SRationalValue or;
|
||||
SRationalValue cor;
|
||||
|
||||
or = g_array_index (srational->srational_array, SRationalValue, i);
|
||||
|
||||
cor.nom = or.nom;
|
||||
cor.denom = or.denom;
|
||||
|
||||
rlacp = g_array_append_val (rlacp, cor);
|
||||
}
|
||||
|
||||
copy->srational_array = rlacp;
|
||||
copy->length = srational->length;
|
||||
|
||||
return (gpointer) copy;
|
||||
}
|
||||
|
||||
/**
|
||||
* srational_free:
|
||||
*
|
||||
* @data: a #gpointer to a #SRational structure
|
||||
*
|
||||
* free part of the #SRational type
|
||||
*
|
||||
* Since: 2.10
|
||||
*/
|
||||
void
|
||||
srational_free (gpointer data)
|
||||
{
|
||||
struct _SRational *srational = (struct _SRational *) data;
|
||||
|
||||
if (srational)
|
||||
{
|
||||
if (srational->srational_array)
|
||||
g_array_free (srational->srational_array, TRUE);
|
||||
srational->length = 0;
|
||||
}
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
/*
|
||||
* gimprational.h
|
||||
*
|
||||
* Created on: 19.09.2014
|
||||
* Author: kuhse
|
||||
*/
|
||||
|
||||
#ifndef __GIMPRATIONAL_H__
|
||||
#define __GIMPRATIONAL_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GIMP_TYPE_RATIONAL (rational_get_type ())
|
||||
#define GIMP_TYPE_SRATIONAL (srational_get_type ())
|
||||
|
||||
typedef struct _RationalValue RationalValue;
|
||||
|
||||
struct _RationalValue
|
||||
{
|
||||
guint nom;
|
||||
guint denom;
|
||||
};
|
||||
|
||||
typedef struct _SRationalValue SRationalValue;
|
||||
|
||||
struct _SRationalValue
|
||||
{
|
||||
gint nom;
|
||||
guint denom;
|
||||
};
|
||||
|
||||
typedef struct _Rational Rational;
|
||||
|
||||
struct _Rational
|
||||
{
|
||||
GArray *rational_array;
|
||||
gint length;
|
||||
};
|
||||
|
||||
typedef struct _SRational SRational;
|
||||
|
||||
struct _SRational
|
||||
{
|
||||
GArray *srational_array;
|
||||
gint length;
|
||||
};
|
||||
|
||||
GType rational_get_type (void) G_GNUC_CONST;
|
||||
GType srational_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void rational_free (gpointer data);
|
||||
void srational_free (gpointer data);
|
||||
|
||||
void string_to_rational (gchar *string,
|
||||
Rational **rational);
|
||||
void rational_to_int (Rational *rational,
|
||||
gint **nom,
|
||||
gint **denom,
|
||||
gint *length);
|
||||
void string_to_srational (gchar *string,
|
||||
SRational **srational);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMPRATIONAL_H__ */
|
|
@ -166,7 +166,6 @@ static const GtkStockItem gimp_stock_items[] =
|
|||
{ GIMP_STOCK_TOOL_PRESET, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
|
||||
{ GIMP_STOCK_IMAGE, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
{ GIMP_STOCK_IMAGE_METADATA, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
{ GIMP_STOCK_LAYER, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
{ GIMP_STOCK_TEXT_LAYER, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
{ GIMP_STOCK_FLOATING_SELECTION, NULL, 0, 0, LIBGIMP_DOMAIN },
|
||||
|
|
|
@ -182,7 +182,6 @@ G_BEGIN_DECLS
|
|||
#define GIMP_STOCK_FLIP_VERTICAL "gimp-flip-vertical"
|
||||
|
||||
#define GIMP_STOCK_IMAGE "gimp-image"
|
||||
#define GIMP_STOCK_IMAGE_METADATA "gimp-image-metadata"
|
||||
#define GIMP_STOCK_LAYER "gimp-layer"
|
||||
#define GIMP_STOCK_TEXT_LAYER "gimp-text-layer"
|
||||
#define GIMP_STOCK_FLOATING_SELECTION "gimp-floating-selection"
|
||||
|
|
|
@ -52,7 +52,6 @@ libexec_PROGRAMS = \
|
|||
align-layers \
|
||||
animation-optimize \
|
||||
animation-play \
|
||||
attributes \
|
||||
blinds \
|
||||
blur \
|
||||
border-average \
|
||||
|
@ -117,10 +116,10 @@ libexec_PROGRAMS = \
|
|||
grid \
|
||||
guillotine \
|
||||
hot \
|
||||
iptc \
|
||||
jigsaw \
|
||||
$(MAIL) \
|
||||
max-rgb \
|
||||
metadata \
|
||||
newsprint \
|
||||
nl-filter \
|
||||
oilify \
|
||||
|
@ -219,24 +218,6 @@ animation_play_LDADD = \
|
|||
$(INTLLIBS) \
|
||||
$(animation_play_RC)
|
||||
|
||||
attributes_SOURCES = \
|
||||
attributes.c
|
||||
|
||||
attributes_LDADD = \
|
||||
$(libgimpui) \
|
||||
$(libgimpwidgets) \
|
||||
$(libgimpmodule) \
|
||||
$(libgimp) \
|
||||
$(libgimpmath) \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(GTK_LIBS) \
|
||||
$(GEGL_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS) \
|
||||
$(attributes_RC)
|
||||
|
||||
blinds_SOURCES = \
|
||||
blinds.c
|
||||
|
||||
|
@ -1373,26 +1354,6 @@ hot_LDADD = \
|
|||
$(INTLLIBS) \
|
||||
$(hot_RC)
|
||||
|
||||
iptc_CFLAGS = $(GEXIV2_CFLAGS)
|
||||
|
||||
iptc_SOURCES = \
|
||||
iptc.c
|
||||
|
||||
iptc_LDADD = \
|
||||
$(libgimpui) \
|
||||
$(libgimpwidgets) \
|
||||
$(libgimpmodule) \
|
||||
$(libgimp) \
|
||||
$(libgimpmath) \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(GTK_LIBS) \
|
||||
$(GEXIV2_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS) \
|
||||
$(iptc_RC)
|
||||
|
||||
jigsaw_SOURCES = \
|
||||
jigsaw.c
|
||||
|
||||
|
@ -1444,6 +1405,26 @@ max_rgb_LDADD = \
|
|||
$(INTLLIBS) \
|
||||
$(max_rgb_RC)
|
||||
|
||||
metadata_CFLAGS = $(GEXIV2_CFLAGS)
|
||||
|
||||
metadata_SOURCES = \
|
||||
metadata.c
|
||||
|
||||
metadata_LDADD = \
|
||||
$(libgimpui) \
|
||||
$(libgimpwidgets) \
|
||||
$(libgimpmodule) \
|
||||
$(libgimp) \
|
||||
$(libgimpmath) \
|
||||
$(libgimpconfig) \
|
||||
$(libgimpcolor) \
|
||||
$(libgimpbase) \
|
||||
$(GTK_LIBS) \
|
||||
$(GEXIV2_LIBS) \
|
||||
$(RT_LIBS) \
|
||||
$(INTLLIBS) \
|
||||
$(metadata_RC)
|
||||
|
||||
newsprint_SOURCES = \
|
||||
newsprint.c
|
||||
|
||||
|
|
|
@ -57,7 +57,6 @@ static void run (const gchar *name,
|
|||
gint *nreturn_vals,
|
||||
GimpParam **return_vals);
|
||||
static gint32 load_image (const gchar *filename,
|
||||
gint32 *layer_ID,
|
||||
GError **error);
|
||||
static gboolean load_icc_profile (jas_image_t *jas_image,
|
||||
gint image_ID,
|
||||
|
@ -127,7 +126,6 @@ run (const gchar *name,
|
|||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
gint image_ID;
|
||||
GError *error = NULL;
|
||||
gint32 layer_ID;
|
||||
|
||||
run_mode = param[0].data.d_int32;
|
||||
|
||||
|
@ -156,7 +154,7 @@ run (const gchar *name,
|
|||
break;
|
||||
}
|
||||
|
||||
image_ID = load_image (param[1].data.d_string, &layer_ID, &error);
|
||||
image_ID = load_image (param[1].data.d_string, &error);
|
||||
|
||||
if (image_ID != -1)
|
||||
{
|
||||
|
@ -170,7 +168,7 @@ run (const gchar *name,
|
|||
{
|
||||
GimpMetadataLoadFlags flags = GIMP_METADATA_LOAD_ALL;
|
||||
|
||||
gimp_image_metadata_load_finish (image_ID, layer_ID, "image/jp2",
|
||||
gimp_image_metadata_load_finish (image_ID, "image/jp2",
|
||||
metadata, flags,
|
||||
interactive);
|
||||
|
||||
|
@ -205,13 +203,13 @@ run (const gchar *name,
|
|||
|
||||
static gint32
|
||||
load_image (const gchar *filename,
|
||||
gint32 *layer_ID,
|
||||
GError **error)
|
||||
{
|
||||
gint fd;
|
||||
jas_stream_t *stream;
|
||||
gint32 image_ID = -1;
|
||||
jas_image_t *image;
|
||||
gint32 layer_ID;
|
||||
GimpImageType image_type;
|
||||
GimpImageBaseType base_type;
|
||||
gint width;
|
||||
|
|
|
@ -140,7 +140,6 @@ static void run (const gchar *name,
|
|||
GimpParam **return_vals);
|
||||
|
||||
static gint32 load_image (const gchar *filename,
|
||||
gint32 *layer_ID,
|
||||
gboolean interactive,
|
||||
gboolean *resolution_loaded,
|
||||
GError **error);
|
||||
|
@ -148,7 +147,6 @@ static gboolean save_image (const gchar *filename,
|
|||
gint32 image_ID,
|
||||
gint32 drawable_ID,
|
||||
gint32 orig_image_ID,
|
||||
gint *bits_depth,
|
||||
GError **error);
|
||||
|
||||
static int respin_cmap (png_structp pp,
|
||||
|
@ -418,7 +416,6 @@ run (const gchar *name,
|
|||
GimpRunMode run_mode;
|
||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
gint32 image_ID;
|
||||
gint32 layer_ID;
|
||||
gint32 drawable_ID;
|
||||
GError *error = NULL;
|
||||
|
||||
|
@ -451,7 +448,6 @@ run (const gchar *name,
|
|||
}
|
||||
|
||||
image_ID = load_image (param[1].data.d_string,
|
||||
&layer_ID,
|
||||
interactive,
|
||||
&resolution_loaded,
|
||||
&error);
|
||||
|
@ -471,7 +467,7 @@ run (const gchar *name,
|
|||
if (resolution_loaded)
|
||||
flags &= ~GIMP_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
gimp_image_metadata_load_finish (image_ID, layer_ID, "image/png",
|
||||
gimp_image_metadata_load_finish (image_ID, "image/png",
|
||||
metadata, flags,
|
||||
interactive);
|
||||
|
||||
|
@ -496,7 +492,6 @@ run (const gchar *name,
|
|||
GimpMetadata *metadata;
|
||||
GimpMetadataSaveFlags metadata_flags;
|
||||
gint32 orig_image_ID;
|
||||
gint bits_depth;
|
||||
GimpExportReturn export = GIMP_EXPORT_CANCEL;
|
||||
gboolean alpha;
|
||||
|
||||
|
@ -613,7 +608,7 @@ run (const gchar *name,
|
|||
if (status == GIMP_PDB_SUCCESS)
|
||||
{
|
||||
if (save_image (param[3].data.d_string,
|
||||
image_ID, drawable_ID, orig_image_ID, &bits_depth, &error))
|
||||
image_ID, drawable_ID, orig_image_ID, &error))
|
||||
{
|
||||
if (metadata)
|
||||
{
|
||||
|
@ -642,12 +637,10 @@ run (const gchar *name,
|
|||
metadata_flags &= ~GIMP_METADATA_SAVE_THUMBNAIL;
|
||||
|
||||
file = g_file_new_for_path (param[3].data.d_string);
|
||||
|
||||
gimp_image_metadata_save_finish (orig_image_ID,
|
||||
"image/png",
|
||||
metadata, metadata_flags,
|
||||
file, NULL);
|
||||
g_object_unref (metadata);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
|
@ -662,6 +655,8 @@ run (const gchar *name,
|
|||
if (export == GIMP_EXPORT_EXPORT)
|
||||
gimp_image_delete (image_ID);
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
else if (strcmp (name, GET_DEFAULTS_PROC) == 0)
|
||||
{
|
||||
|
@ -822,7 +817,6 @@ load_color_profile (png_structp pp,
|
|||
*/
|
||||
static gint32
|
||||
load_image (const gchar *filename,
|
||||
gint32 *layer_ID,
|
||||
gboolean interactive,
|
||||
gboolean *resolution_loaded,
|
||||
GError **error)
|
||||
|
@ -1356,8 +1350,6 @@ load_image (const gchar *filename,
|
|||
g_object_unref (buffer);
|
||||
}
|
||||
|
||||
*layer_ID = layer;
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
|
@ -1435,7 +1427,6 @@ save_image (const gchar *filename,
|
|||
gint32 image_ID,
|
||||
gint32 drawable_ID,
|
||||
gint32 orig_image_ID,
|
||||
gint *bits_depth,
|
||||
GError **error)
|
||||
{
|
||||
gint i, k; /* Looping vars */
|
||||
|
@ -1509,8 +1500,6 @@ save_image (const gchar *filename,
|
|||
break;
|
||||
}
|
||||
|
||||
*bits_depth = bit_depth;
|
||||
|
||||
pp = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
|
||||
if (!pp)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
align_layers_RC = align-layers.rc.o
|
||||
animation_optimize_RC = animation-optimize.rc.o
|
||||
animation_play_RC = animation-play.rc.o
|
||||
attributes_RC = attributes.rc.o
|
||||
blinds_RC = blinds.rc.o
|
||||
blur_RC = blur.rc.o
|
||||
border_average_RC = border-average.rc.o
|
||||
|
@ -66,10 +65,10 @@ gradient_map_RC = gradient-map.rc.o
|
|||
grid_RC = grid.rc.o
|
||||
guillotine_RC = guillotine.rc.o
|
||||
hot_RC = hot.rc.o
|
||||
iptc_RC = iptc.rc.o
|
||||
jigsaw_RC = jigsaw.rc.o
|
||||
mail_RC = mail.rc.o
|
||||
max_rgb_RC = max-rgb.rc.o
|
||||
metadata_RC = metadata.rc.o
|
||||
newsprint_RC = newsprint.rc.o
|
||||
nl_filter_RC = nl-filter.rc.o
|
||||
oilify_RC = oilify.rc.o
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
'align-layers' => { ui => 1 },
|
||||
'animation-optimize' => {},
|
||||
'animation-play' => { ui => 1, gegl => 1 },
|
||||
'attributes' => { ui => 1, gegl => 1 },
|
||||
'blinds' => { ui => 1 },
|
||||
'blur' => {},
|
||||
'border-average' => { ui => 1, gegl => 1 },
|
||||
|
@ -67,10 +66,10 @@
|
|||
'grid' => { ui => 1 },
|
||||
'guillotine' => {},
|
||||
'hot' => { ui => 1 },
|
||||
'iptc' => { ui => 1, libs => 'GEXIV2_LIBS', cflags => 'GEXIV2_CFLAGS' },
|
||||
'jigsaw' => { ui => 1 },
|
||||
'mail' => { ui => 1, optional => 1 },
|
||||
'max-rgb' => { ui => 1 },
|
||||
'metadata' => { ui => 1, libs => 'GEXIV2_LIBS', cflags => 'GEXIV2_CFLAGS' },
|
||||
'newsprint' => { ui => 1 },
|
||||
'nl-filter' => { ui => 1 },
|
||||
'oilify' => { ui => 1 },
|
||||
|
|
|
@ -58,13 +58,12 @@ gint32 preview_layer_ID;
|
|||
gint32
|
||||
load_image (const gchar *filename,
|
||||
GimpRunMode runmode,
|
||||
gint32 *layer_ID,
|
||||
gboolean preview,
|
||||
gboolean *resolution_loaded,
|
||||
GError **error)
|
||||
{
|
||||
gint32 volatile image_ID;
|
||||
gint32 _layer_ID;
|
||||
gint32 layer_ID;
|
||||
struct jpeg_decompress_struct cinfo;
|
||||
struct my_error_mgr jerr;
|
||||
jpeg_saved_marker_ptr marker;
|
||||
|
@ -233,11 +232,11 @@ load_image (const gchar *filename,
|
|||
cinfo.output_width,
|
||||
cinfo.output_height,
|
||||
layer_type, 100, GIMP_NORMAL_MODE);
|
||||
_layer_ID = preview_layer_ID;
|
||||
layer_ID = preview_layer_ID;
|
||||
}
|
||||
else
|
||||
{
|
||||
_layer_ID = gimp_layer_new (image_ID, _("Background"),
|
||||
layer_ID = gimp_layer_new (image_ID, _("Background"),
|
||||
cinfo.output_width,
|
||||
cinfo.output_height,
|
||||
layer_type, 100, GIMP_NORMAL_MODE);
|
||||
|
@ -344,7 +343,7 @@ load_image (const gchar *filename,
|
|||
* loop counter, so that we don't have to keep track ourselves.
|
||||
*/
|
||||
|
||||
buffer = gimp_drawable_get_buffer (_layer_ID);
|
||||
buffer = gimp_drawable_get_buffer (layer_ID);
|
||||
format = babl_format (image_type == GIMP_RGB ? "R'G'B' u8" : "Y' u8");
|
||||
|
||||
while (cinfo.output_scanline < cinfo.output_height)
|
||||
|
@ -413,9 +412,7 @@ load_image (const gchar *filename,
|
|||
gimp_progress_update (1.0);
|
||||
}
|
||||
|
||||
gimp_image_insert_layer (image_ID, _layer_ID, -1, 0);
|
||||
|
||||
*layer_ID = _layer_ID;
|
||||
gimp_image_insert_layer (image_ID, layer_ID, -1, 0);
|
||||
|
||||
return image_ID;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
gint32 load_image (const gchar *filename,
|
||||
GimpRunMode runmode,
|
||||
gint32 *layer_ID,
|
||||
gboolean preview,
|
||||
gboolean *resolution_loaded,
|
||||
GError **error);
|
||||
|
|
|
@ -188,7 +188,6 @@ background_jpeg_save (PreviewPersistent *pp)
|
|||
GFile *file = g_file_new_for_path (pp->file_name);
|
||||
GFileInfo *info;
|
||||
gchar *text;
|
||||
gint32 layer_ID;
|
||||
GError *error = NULL;
|
||||
|
||||
info = g_file_query_info (file,
|
||||
|
@ -219,7 +218,7 @@ background_jpeg_save (PreviewPersistent *pp)
|
|||
g_object_unref (file);
|
||||
|
||||
/* and load the preview */
|
||||
load_image (pp->file_name, GIMP_RUN_NONINTERACTIVE, &layer_ID, TRUE, NULL, NULL);
|
||||
load_image (pp->file_name, GIMP_RUN_NONINTERACTIVE, TRUE, NULL, NULL);
|
||||
}
|
||||
|
||||
/* we cleanup here (load_image doesn't run in the background) */
|
||||
|
|
|
@ -173,7 +173,6 @@ run (const gchar *name,
|
|||
GimpRunMode run_mode;
|
||||
GimpPDBStatusType status = GIMP_PDB_SUCCESS;
|
||||
gint32 image_ID;
|
||||
gint32 layer_ID;
|
||||
gint32 drawable_ID;
|
||||
GimpParasite *parasite;
|
||||
GError *error = NULL;
|
||||
|
@ -211,7 +210,7 @@ run (const gchar *name,
|
|||
break;
|
||||
}
|
||||
|
||||
image_ID = load_image (param[1].data.d_string, run_mode, &layer_ID, FALSE,
|
||||
image_ID = load_image (param[1].data.d_string, run_mode, FALSE,
|
||||
&resolution_loaded, &error);
|
||||
|
||||
if (image_ID != -1)
|
||||
|
@ -229,7 +228,7 @@ run (const gchar *name,
|
|||
if (resolution_loaded)
|
||||
flags &= ~GIMP_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
gimp_image_metadata_load_finish (image_ID, layer_ID, "image/jpeg",
|
||||
gimp_image_metadata_load_finish (image_ID, "image/jpeg",
|
||||
metadata, flags,
|
||||
load_interactive);
|
||||
|
||||
|
@ -575,6 +574,7 @@ run (const gchar *name,
|
|||
g_object_unref (file);
|
||||
}
|
||||
}
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
|
|
@ -211,7 +211,7 @@ run (const gchar *name,
|
|||
if (resolution_loaded)
|
||||
flags &= ~GIMP_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
gimp_image_metadata_load_finish (image_ID, -1, "image/x-psd",
|
||||
gimp_image_metadata_load_finish (image_ID, "image/x-psd",
|
||||
metadata, flags,
|
||||
interactive);
|
||||
|
||||
|
@ -315,8 +315,6 @@ run (const gchar *name,
|
|||
metadata, metadata_flags,
|
||||
file, NULL);
|
||||
g_object_unref (file);
|
||||
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
values[0].data.d_status = GIMP_PDB_SUCCESS;
|
||||
|
@ -336,6 +334,8 @@ run (const gchar *name,
|
|||
if (export == GIMP_EXPORT_EXPORT)
|
||||
gimp_image_delete (image_ID);
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
/* Unknown procedure */
|
||||
|
|
|
@ -219,7 +219,6 @@ load_dialog (TIFF *tif,
|
|||
|
||||
gint32
|
||||
load_image (GFile *file,
|
||||
gint32 *layer_ID,
|
||||
TIFF *tif,
|
||||
TiffSelectedPages *pages,
|
||||
gboolean *resolution_loaded,
|
||||
|
@ -930,8 +929,6 @@ load_image (GFile *file,
|
|||
g_free (name);
|
||||
}
|
||||
|
||||
*layer_ID = layer;
|
||||
|
||||
if (! base_format && image_type == GIMP_INDEXED)
|
||||
{
|
||||
/* can't create the palette format here, need to get it from
|
||||
|
|
|
@ -37,7 +37,6 @@ gboolean load_dialog (TIFF *tif,
|
|||
TiffSelectedPages *pages);
|
||||
|
||||
gint32 load_image (GFile *file,
|
||||
gint32 *layer_ID,
|
||||
TIFF *tif,
|
||||
TiffSelectedPages *pages,
|
||||
gboolean *resolution_loaded,
|
||||
|
|
|
@ -265,13 +265,12 @@ run (const gchar *name,
|
|||
if (run_it)
|
||||
{
|
||||
gint32 image;
|
||||
gint32 layer_ID;
|
||||
gboolean resolution_loaded = FALSE;
|
||||
|
||||
gimp_set_data (LOAD_PROC,
|
||||
&pages.target, sizeof (pages.target));
|
||||
|
||||
image = load_image (file, &layer_ID, tif, &pages,
|
||||
image = load_image (file, tif, &pages,
|
||||
&resolution_loaded,
|
||||
&error);
|
||||
|
||||
|
@ -292,7 +291,7 @@ run (const gchar *name,
|
|||
if (resolution_loaded)
|
||||
flags &= ~GIMP_METADATA_LOAD_RESOLUTION;
|
||||
|
||||
gimp_image_metadata_load_finish (image, layer_ID, "image/tiff",
|
||||
gimp_image_metadata_load_finish (image, "image/tiff",
|
||||
metadata, flags,
|
||||
run_mode == GIMP_RUN_INTERACTIVE);
|
||||
|
||||
|
@ -472,9 +471,9 @@ run (const gchar *name,
|
|||
* exiv2 saves them with wrong type and the original values
|
||||
* could be invalid, see also bug 761823
|
||||
*/
|
||||
gimp_metadata_remove_attribute (metadata, "Exif.Image.0x0118");
|
||||
gimp_metadata_remove_attribute (metadata, "Exif.Image.0x0119");
|
||||
gimp_metadata_remove_attribute (metadata, "Exif.Image.PageNumber");
|
||||
gexiv2_metadata_clear_tag (metadata, "Exif.Image.0x0118");
|
||||
gexiv2_metadata_clear_tag (metadata, "Exif.Image.0x0119");
|
||||
gexiv2_metadata_clear_tag (metadata, "Exif.Image.PageNumber");
|
||||
|
||||
gimp_metadata_set_bits_per_sample (metadata, saved_bpp);
|
||||
|
||||
|
@ -500,7 +499,6 @@ run (const gchar *name,
|
|||
"image/tiff",
|
||||
metadata, metadata_flags,
|
||||
file, NULL);
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
|
||||
/* Store mvals data */
|
||||
|
@ -517,6 +515,8 @@ run (const gchar *name,
|
|||
if (export == GIMP_EXPORT_EXPORT)
|
||||
gimp_image_delete (image);
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -5,8 +5,6 @@ uidata_DATA = \
|
|||
plug-in-file-png.ui \
|
||||
plug-in-file-raw.ui \
|
||||
plug-in-file-tiff.ui \
|
||||
plug-in-attributes.ui \
|
||||
plug-in-iptc.ui
|
||||
|
||||
plug-in-metadata.ui
|
||||
|
||||
EXTRA_DIST = $(uidata_DATA)
|
||||
|
|
|
@ -0,0 +1,908 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkListStore" id="exif-liststore">
|
||||
<columns>
|
||||
<!-- column-name c_exif_tag -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name c_exif_value -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkListStore" id="xmp-liststore">
|
||||
<columns>
|
||||
<!-- column-name c_xmp_tag -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name c_xmp_value -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkVBox" id="metadata-vbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkNotebook" id="metadata-notebook">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="scrollable">True</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="exif-scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="exif-treeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">exif-liststore</property>
|
||||
<property name="headers_clickable">False</property>
|
||||
<property name="search_column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="exif-treeview-selection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="exif_tag_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">3</property>
|
||||
<property name="title" translatable="yes">Exif Tag</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="exif_tag_cell_renderer"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="exif_value_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">3</property>
|
||||
<property name="title" translatable="yes">Value</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="exif_value_cell_renderer"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="exif">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">4</property>
|
||||
<property name="ypad">4</property>
|
||||
<property name="label" translatable="yes">Exif</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_expand">True</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="xmp-scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="xm-ptreeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">xmp-liststore</property>
|
||||
<property name="headers_clickable">False</property>
|
||||
<property name="search_column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="xmp-treeview-selection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="xmp_tag_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">3</property>
|
||||
<property name="title" translatable="yes">XMP Tag</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="xmp_tag_cell_renderer"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="xmp_value_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">3</property>
|
||||
<property name="title" translatable="yes">Value</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="xmp_value_cell_renderer"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="xmp">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">4</property>
|
||||
<property name="ypad">4</property>
|
||||
<property name="label" translatable="yes">XMP</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="box1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="spacing">6</property>
|
||||
<child>
|
||||
<object class="GtkNotebook" id="iptc-notebook">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<child>
|
||||
<object class="GtkVBox" id="box2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTable" id="desctable">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="n_rows">8</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">3</property>
|
||||
<property name="row_spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_title">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Title</property>
|
||||
<property name="single_line_mode">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_author">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Author</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_authortitle">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Authortitle</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_copyright">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Copyright</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_caption">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Caption</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_captionwriter">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Captionwriter</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_headline">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Headline</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_specialinstruct">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Special
|
||||
Instructions</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.ObjectName">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Byline">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.BylineTitle">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Copyright">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Writer">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="caption_scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTextView" id="Iptc.Application2.Caption">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="headline_scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTextView" id="Iptc.Application2.Headline">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="instruct_scroll">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTextView" id="Iptc.Application2.SpecialInstructions">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="iptcdesc">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">2</property>
|
||||
<property name="ypad">2</property>
|
||||
<property name="label" translatable="yes">Description</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="box3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTable" id="table3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="n_rows">4</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">3</property>
|
||||
<property name="row_spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_keywords1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Keywords</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_category1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Category</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_suppcat1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Supplemental
|
||||
Category</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_urgency1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Urgency</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTextView" id="Iptc.Application2.Keywords">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow12">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkTextView" id="Iptc.Application2.SuppCategory">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Urgency">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Category">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="iptckeys">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">2</property>
|
||||
<property name="ypad">2</property>
|
||||
<property name="label" translatable="yes">Keywords/Categories</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="box4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTable" id="table4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">6</property>
|
||||
<property name="n_rows">9</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">3</property>
|
||||
<property name="row_spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkHSeparator" id="hseparator4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_credit">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Credit</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_source">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Source</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Credit">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.Source">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_transmission">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Transmission
|
||||
reference</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.TransmissionReference">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">8</property>
|
||||
<property name="bottom_attach">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_city">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">City</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.City">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_sublocation">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Sublocation</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.SubLocation">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">4</property>
|
||||
<property name="bottom_attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_province">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">3</property>
|
||||
<property name="label" translatable="yes">Province/State</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.ProvinceState">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">5</property>
|
||||
<property name="bottom_attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="l_country">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Country</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="Iptc.Application2.CountryName">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="invisible_char">●</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">6</property>
|
||||
<property name="bottom_attach">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHSeparator" id="hseparator2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">7</property>
|
||||
<property name="bottom_attach">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="iptccredits">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">2</property>
|
||||
<property name="ypad">2</property>
|
||||
<property name="label" translatable="yes">Credits/Origin</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="iptc-write-button">
|
||||
<property name="label" translatable="yes">Write IPTC Data</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="iptc">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xpad">4</property>
|
||||
<property name="ypad">4</property>
|
||||
<property name="label" translatable="yes">IPTC</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
|
@ -6,7 +6,6 @@
|
|||
plug-ins/common/align-layers.c
|
||||
plug-ins/common/animation-optimize.c
|
||||
plug-ins/common/animation-play.c
|
||||
plug-ins/common/attributes.c
|
||||
plug-ins/common/blinds.c
|
||||
plug-ins/common/blur.c
|
||||
plug-ins/common/border-average.c
|
||||
|
@ -74,6 +73,7 @@ plug-ins/common/hot.c
|
|||
plug-ins/common/jigsaw.c
|
||||
plug-ins/common/mail.c
|
||||
plug-ins/common/max-rgb.c
|
||||
plug-ins/common/metadata.c
|
||||
plug-ins/common/newsprint.c
|
||||
plug-ins/common/nl-filter.c
|
||||
plug-ins/common/oilify.c
|
||||
|
@ -159,8 +159,7 @@ plug-ins/gimpressionist/utils.c
|
|||
[type: gettext/glade]plug-ins/ui/plug-in-file-png.ui
|
||||
[type: gettext/glade]plug-ins/ui/plug-in-file-raw.ui
|
||||
[type: gettext/glade]plug-ins/ui/plug-in-file-tiff.ui
|
||||
[type: gettext/glade]plug-ins/ui/plug-in-metainfo.ui
|
||||
[type: gettext/glade]plug-ins/ui/plug-in-attributes.ui
|
||||
[type: gettext/glade]plug-ins/ui/plug-in-metadata.ui
|
||||
plug-ins/gradient-flare/gradient-flare.c
|
||||
plug-ins/help-browser/dialog.c
|
||||
plug-ins/help-browser/help-browser.c
|
||||
|
@ -218,11 +217,6 @@ plug-ins/lighting/lighting-ui.c
|
|||
plug-ins/map-object/map-object-apply.c
|
||||
plug-ins/map-object/map-object-main.c
|
||||
plug-ins/map-object/map-object-ui.c
|
||||
plug-ins/metainfo/interface.c
|
||||
plug-ins/metainfo/page-administration.c
|
||||
plug-ins/metainfo/page-rights.c
|
||||
plug-ins/metainfo/page-description.c
|
||||
plug-ins/metainfo/page-artwork.c
|
||||
plug-ins/pagecurl/pagecurl.c
|
||||
plug-ins/print/print-draw-page.c
|
||||
plug-ins/print/print-page-layout.c
|
||||
|
|
|
@ -783,61 +783,6 @@ CODE
|
|||
);
|
||||
}
|
||||
|
||||
sub item_get_metadata {
|
||||
$blurb = "Returns the item's metadata.";
|
||||
$help = 'Returns metadata from the item.';
|
||||
|
||||
&std_pdb_misc('2016', '2.10');
|
||||
|
||||
@inargs = (
|
||||
{ name => 'item', type => 'item',
|
||||
desc => 'The item' }
|
||||
);
|
||||
|
||||
@outargs = (
|
||||
{ name => 'metadata_string', type => 'string', wrap => 1,
|
||||
desc => 'The metadata as a xml string'}
|
||||
);
|
||||
|
||||
%invoke = (
|
||||
code => <<'CODE'
|
||||
{
|
||||
GimpMetadata *metadata = gimp_item_get_metadata (item);
|
||||
|
||||
if (metadata)
|
||||
metadata_string = gimp_metadata_serialize (metadata);
|
||||
}
|
||||
CODE
|
||||
);
|
||||
}
|
||||
|
||||
sub item_set_metadata {
|
||||
$blurb = "Set the item's metadata.";
|
||||
$help = 'Sets metadata on the item.';
|
||||
|
||||
&std_pdb_misc('2016', '2.10');
|
||||
|
||||
@inargs = (
|
||||
{ name => 'item', type => 'item',
|
||||
desc => 'The item' },
|
||||
{ name => 'metadata_string', type => 'string', wrap => 1,
|
||||
desc => 'The metadata as a xml string' }
|
||||
);
|
||||
|
||||
%invoke = (
|
||||
code => <<'CODE'
|
||||
{
|
||||
GimpMetadata *metadata = gimp_metadata_deserialize (metadata_string);
|
||||
|
||||
gimp_item_set_metadata (item, metadata, TRUE);
|
||||
|
||||
if (metadata)
|
||||
g_object_unref (metadata);
|
||||
}
|
||||
CODE
|
||||
);
|
||||
}
|
||||
|
||||
sub item_attach_parasite {
|
||||
$blurb = 'Add a parasite to an item.';
|
||||
|
||||
|
@ -951,10 +896,8 @@ CODE
|
|||
}
|
||||
|
||||
@headers = qw("core/gimplayermask.h"
|
||||
"libgimpbase/gimpbase.h"
|
||||
"core/gimplist.h"
|
||||
"core/gimpselection.h"
|
||||
"core/gimpitem.h"
|
||||
"text/gimptextlayer.h"
|
||||
"vectors/gimpvectors.h"
|
||||
"gimppdb-utils.h"
|
||||
|
@ -981,7 +924,6 @@ CODE
|
|||
item_get_lock_position item_set_lock_position
|
||||
item_get_color_tag item_set_color_tag
|
||||
item_get_tattoo item_set_tattoo
|
||||
item_get_metadata item_set_metadata
|
||||
item_attach_parasite item_detach_parasite
|
||||
item_get_parasite
|
||||
item_get_parasite_list);
|
||||
|
|