2006-12-10 05:33:38 +08:00
|
|
|
/* GIMP - The GNU Image Manipulation Program
|
2003-04-04 01:50:56 +08:00
|
|
|
* Copyright (C) 1995-1997 Spencer Kimball and Peter Mattis
|
|
|
|
*
|
|
|
|
* gimptemplate.c
|
|
|
|
* Copyright (C) 2003 Michael Natterer <mitch@gimp.org>
|
|
|
|
*
|
2009-01-18 06:28:01 +08:00
|
|
|
* This program is free software: you can redistribute it and/or modify
|
2003-04-04 01:50:56 +08:00
|
|
|
* it under the terms of the GNU General Public License as published by
|
2009-01-18 06:28:01 +08:00
|
|
|
* the Free Software Foundation; either version 3 of the License, or
|
2003-04-04 01:50:56 +08:00
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program 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 General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
2009-01-18 06:28:01 +08:00
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2003-04-04 01:50:56 +08:00
|
|
|
*/
|
|
|
|
|
2011-02-07 09:26:37 +08:00
|
|
|
/* This file contains the definition of the image template objects.
|
|
|
|
*/
|
|
|
|
|
2003-04-04 01:50:56 +08:00
|
|
|
#include "config.h"
|
|
|
|
|
2008-10-10 04:24:04 +08:00
|
|
|
#include <gegl.h>
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
#include "libgimpbase/gimpbase.h"
|
2005-01-26 03:11:26 +08:00
|
|
|
#include "libgimpconfig/gimpconfig.h"
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
#include "core-types.h"
|
|
|
|
|
|
|
|
#include "gimpimage.h"
|
2007-06-06 18:13:44 +08:00
|
|
|
#include "gimpprojection.h"
|
2003-04-04 01:50:56 +08:00
|
|
|
#include "gimptemplate.h"
|
|
|
|
|
|
|
|
#include "gimp-intl.h"
|
|
|
|
|
2005-08-18 01:01:58 +08:00
|
|
|
|
2007-05-21 14:48:31 +08:00
|
|
|
#define DEFAULT_RESOLUTION 72.0
|
|
|
|
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
PROP_0,
|
|
|
|
PROP_WIDTH,
|
|
|
|
PROP_HEIGHT,
|
|
|
|
PROP_UNIT,
|
|
|
|
PROP_XRESOLUTION,
|
|
|
|
PROP_YRESOLUTION,
|
|
|
|
PROP_RESOLUTION_UNIT,
|
|
|
|
PROP_IMAGE_TYPE,
|
2003-04-04 23:11:30 +08:00
|
|
|
PROP_FILL_TYPE,
|
2003-10-15 23:30:11 +08:00
|
|
|
PROP_COMMENT,
|
2003-04-04 23:11:30 +08:00
|
|
|
PROP_FILENAME
|
2003-04-04 01:50:56 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
typedef struct _GimpTemplatePrivate GimpTemplatePrivate;
|
|
|
|
|
|
|
|
struct _GimpTemplatePrivate
|
|
|
|
{
|
|
|
|
gint width;
|
|
|
|
gint height;
|
|
|
|
GimpUnit unit;
|
|
|
|
|
|
|
|
gdouble xresolution;
|
|
|
|
gdouble yresolution;
|
|
|
|
GimpUnit resolution_unit;
|
|
|
|
|
|
|
|
GimpImageBaseType image_type;
|
|
|
|
GimpFillType fill_type;
|
|
|
|
|
|
|
|
gchar *comment;
|
|
|
|
gchar *filename;
|
|
|
|
|
|
|
|
guint64 initial_size;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define GET_PRIVATE(template) G_TYPE_INSTANCE_GET_PRIVATE (template, \
|
|
|
|
GIMP_TYPE_TEMPLATE, \
|
|
|
|
GimpTemplatePrivate)
|
|
|
|
|
|
|
|
|
2005-12-11 03:24:36 +08:00
|
|
|
static void gimp_template_finalize (GObject *object);
|
|
|
|
static void gimp_template_set_property (GObject *object,
|
|
|
|
guint property_id,
|
|
|
|
const GValue *value,
|
|
|
|
GParamSpec *pspec);
|
|
|
|
static void gimp_template_get_property (GObject *object,
|
|
|
|
guint property_id,
|
|
|
|
GValue *value,
|
|
|
|
GParamSpec *pspec);
|
|
|
|
static void gimp_template_notify (GObject *object,
|
|
|
|
GParamSpec *pspec);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
|
2005-12-11 03:24:36 +08:00
|
|
|
G_DEFINE_TYPE_WITH_CODE (GimpTemplate, gimp_template, GIMP_TYPE_VIEWABLE,
|
2006-05-15 17:46:31 +08:00
|
|
|
G_IMPLEMENT_INTERFACE (GIMP_TYPE_CONFIG, NULL))
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2005-12-11 03:24:36 +08:00
|
|
|
#define parent_class gimp_template_parent_class
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
gimp_template_class_init (GimpTemplateClass *klass)
|
|
|
|
{
|
2005-12-11 03:24:36 +08:00
|
|
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
|
|
|
GimpViewableClass *viewable_class = GIMP_VIEWABLE_CLASS (klass);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2005-12-11 03:24:36 +08:00
|
|
|
object_class->finalize = gimp_template_finalize;
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
object_class->set_property = gimp_template_set_property;
|
|
|
|
object_class->get_property = gimp_template_get_property;
|
2003-04-04 23:11:30 +08:00
|
|
|
object_class->notify = gimp_template_notify;
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
viewable_class->default_stock_id = "gimp-template";
|
|
|
|
|
|
|
|
GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_WIDTH, "width",
|
2003-10-15 19:04:31 +08:00
|
|
|
NULL,
|
2004-07-01 09:39:56 +08:00
|
|
|
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE,
|
2008-03-22 06:09:23 +08:00
|
|
|
GIMP_DEFAULT_IMAGE_WIDTH,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 01:50:56 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_HEIGHT, "height",
|
2003-10-15 19:04:31 +08:00
|
|
|
NULL,
|
2004-07-01 09:39:56 +08:00
|
|
|
GIMP_MIN_IMAGE_SIZE, GIMP_MAX_IMAGE_SIZE,
|
2008-03-22 06:09:23 +08:00
|
|
|
GIMP_DEFAULT_IMAGE_HEIGHT,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 01:50:56 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_UNIT (object_class, PROP_UNIT, "unit",
|
2003-10-15 19:04:31 +08:00
|
|
|
N_("The unit used for coordinate display "
|
|
|
|
"when not in dot-for-dot mode."),
|
2004-05-07 23:45:56 +08:00
|
|
|
TRUE, FALSE, GIMP_UNIT_PIXEL,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2003-10-24 14:22:53 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_RESOLUTION (object_class, PROP_XRESOLUTION,
|
|
|
|
"xresolution",
|
2004-05-24 05:02:27 +08:00
|
|
|
N_("The horizontal image resolution."),
|
2007-05-21 14:48:31 +08:00
|
|
|
DEFAULT_RESOLUTION,
|
2008-10-01 00:06:24 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS |
|
|
|
|
GIMP_TEMPLATE_PARAM_COPY_FIRST);
|
2003-10-24 14:22:53 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_RESOLUTION (object_class, PROP_YRESOLUTION,
|
|
|
|
"yresolution",
|
|
|
|
N_("The vertical image resolution."),
|
2007-05-21 14:48:31 +08:00
|
|
|
DEFAULT_RESOLUTION,
|
2008-10-01 00:06:24 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS |
|
|
|
|
GIMP_TEMPLATE_PARAM_COPY_FIRST);
|
2003-04-04 01:50:56 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_UNIT (object_class, PROP_RESOLUTION_UNIT,
|
|
|
|
"resolution-unit",
|
2003-10-15 19:04:31 +08:00
|
|
|
NULL,
|
2005-08-18 23:08:49 +08:00
|
|
|
FALSE, FALSE, GIMP_UNIT_INCH,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_IMAGE_TYPE,
|
|
|
|
"image-type",
|
|
|
|
NULL,
|
|
|
|
GIMP_TYPE_IMAGE_BASE_TYPE, GIMP_RGB,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 01:50:56 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_FILL_TYPE,
|
|
|
|
"fill-type",
|
|
|
|
NULL,
|
|
|
|
GIMP_TYPE_FILL_TYPE, GIMP_BACKGROUND_FILL,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-04-04 23:11:30 +08:00
|
|
|
|
2003-10-15 23:30:11 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_COMMENT,
|
|
|
|
"comment",
|
|
|
|
NULL,
|
|
|
|
NULL,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2003-10-15 23:30:11 +08:00
|
|
|
|
2003-04-04 23:11:30 +08:00
|
|
|
GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_FILENAME,
|
|
|
|
"filename",
|
|
|
|
NULL,
|
|
|
|
NULL,
|
2006-01-19 04:29:40 +08:00
|
|
|
GIMP_PARAM_STATIC_STRINGS);
|
2011-03-02 17:16:43 +08:00
|
|
|
|
|
|
|
g_type_class_add_private (klass, sizeof (GimpTemplatePrivate));
|
2003-04-04 01:50:56 +08:00
|
|
|
}
|
|
|
|
|
2005-12-11 03:24:36 +08:00
|
|
|
static void
|
|
|
|
gimp_template_init (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2003-04-04 01:50:56 +08:00
|
|
|
static void
|
|
|
|
gimp_template_finalize (GObject *object)
|
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
GimpTemplatePrivate *private = GET_PRIVATE (object);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
if (private->comment)
|
2003-10-15 23:30:11 +08:00
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
g_free (private->comment);
|
|
|
|
private->comment = NULL;
|
2003-10-15 23:30:11 +08:00
|
|
|
}
|
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
if (private->filename)
|
2003-10-15 07:00:16 +08:00
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
g_free (private->filename);
|
|
|
|
private->filename = NULL;
|
2003-10-15 07:00:16 +08:00
|
|
|
}
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
gimp_template_set_property (GObject *object,
|
|
|
|
guint property_id,
|
|
|
|
const GValue *value,
|
|
|
|
GParamSpec *pspec)
|
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
GimpTemplatePrivate *private = GET_PRIVATE (object);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
switch (property_id)
|
|
|
|
{
|
|
|
|
case PROP_WIDTH:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->width = g_value_get_int (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_HEIGHT:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->height = g_value_get_int (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_UNIT:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->unit = g_value_get_int (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_XRESOLUTION:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->xresolution = g_value_get_double (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_YRESOLUTION:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->yresolution = g_value_get_double (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_RESOLUTION_UNIT:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->resolution_unit = g_value_get_int (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_IMAGE_TYPE:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->image_type = g_value_get_enum (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_FILL_TYPE:
|
2011-03-02 17:16:43 +08:00
|
|
|
private->fill_type = g_value_get_enum (value);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
2003-10-15 23:30:11 +08:00
|
|
|
case PROP_COMMENT:
|
2011-03-02 17:16:43 +08:00
|
|
|
if (private->comment)
|
|
|
|
g_free (private->comment);
|
|
|
|
private->comment = g_value_dup_string (value);
|
2003-10-15 23:30:11 +08:00
|
|
|
break;
|
2003-04-04 23:11:30 +08:00
|
|
|
case PROP_FILENAME:
|
2011-03-02 17:16:43 +08:00
|
|
|
if (private->filename)
|
|
|
|
g_free (private->filename);
|
|
|
|
private->filename = g_value_dup_string (value);
|
2003-04-04 23:11:30 +08:00
|
|
|
break;
|
2003-04-04 01:50:56 +08:00
|
|
|
default:
|
|
|
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
gimp_template_get_property (GObject *object,
|
|
|
|
guint property_id,
|
|
|
|
GValue *value,
|
|
|
|
GParamSpec *pspec)
|
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
GimpTemplatePrivate *private = GET_PRIVATE (object);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
switch (property_id)
|
|
|
|
{
|
|
|
|
case PROP_WIDTH:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_int (value, private->width);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_HEIGHT:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_int (value, private->height);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_UNIT:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_int (value, private->unit);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_XRESOLUTION:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_double (value, private->xresolution);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_YRESOLUTION:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_double (value, private->yresolution);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_RESOLUTION_UNIT:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_int (value, private->resolution_unit);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_IMAGE_TYPE:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_enum (value, private->image_type);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
|
|
|
case PROP_FILL_TYPE:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_enum (value, private->fill_type);
|
2003-04-04 01:50:56 +08:00
|
|
|
break;
|
2003-10-15 23:30:11 +08:00
|
|
|
case PROP_COMMENT:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_string (value, private->comment);
|
2003-10-15 23:30:11 +08:00
|
|
|
break;
|
2003-04-04 23:11:30 +08:00
|
|
|
case PROP_FILENAME:
|
2011-03-02 17:16:43 +08:00
|
|
|
g_value_set_string (value, private->filename);
|
2003-04-04 23:11:30 +08:00
|
|
|
break;
|
2003-04-04 01:50:56 +08:00
|
|
|
default:
|
|
|
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2003-04-04 23:11:30 +08:00
|
|
|
static void
|
|
|
|
gimp_template_notify (GObject *object,
|
|
|
|
GParamSpec *pspec)
|
|
|
|
{
|
2011-03-02 17:16:43 +08:00
|
|
|
GimpTemplatePrivate *private = GET_PRIVATE (object);
|
|
|
|
gint channels;
|
2003-04-04 23:11:30 +08:00
|
|
|
|
|
|
|
if (G_OBJECT_CLASS (parent_class)->notify)
|
|
|
|
G_OBJECT_CLASS (parent_class)->notify (object, pspec);
|
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
channels = ((private->image_type == GIMP_RGB ? 3 : 1) /* color */ +
|
|
|
|
(private->fill_type == GIMP_TRANSPARENT_FILL) /* alpha */ +
|
|
|
|
1 /* selection */);
|
2003-04-04 23:11:30 +08:00
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
private->initial_size = ((guint64) channels *
|
|
|
|
(guint64) private->width *
|
|
|
|
(guint64) private->height);
|
2003-04-14 00:25:14 +08:00
|
|
|
|
2011-03-02 17:16:43 +08:00
|
|
|
private->initial_size +=
|
|
|
|
gimp_projection_estimate_memsize (private->image_type,
|
|
|
|
private->width, private->height);
|
2007-06-06 18:03:17 +08:00
|
|
|
|
2003-04-14 00:25:14 +08:00
|
|
|
if (! strcmp (pspec->name, "stock-id"))
|
|
|
|
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (object));
|
2003-04-04 23:11:30 +08:00
|
|
|
}
|
|
|
|
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
/* public functions */
|
|
|
|
|
|
|
|
GimpTemplate *
|
|
|
|
gimp_template_new (const gchar *name)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (name != NULL, NULL);
|
|
|
|
|
|
|
|
return g_object_new (GIMP_TYPE_TEMPLATE,
|
|
|
|
"name", name,
|
|
|
|
NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
gimp_template_set_from_image (GimpTemplate *template,
|
2006-03-29 01:08:36 +08:00
|
|
|
GimpImage *image)
|
2003-04-04 01:50:56 +08:00
|
|
|
{
|
2006-04-02 23:37:25 +08:00
|
|
|
gdouble xresolution;
|
|
|
|
gdouble yresolution;
|
|
|
|
GimpImageBaseType image_type;
|
|
|
|
const GimpParasite *parasite;
|
|
|
|
gchar *comment = NULL;
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
g_return_if_fail (GIMP_IS_TEMPLATE (template));
|
2006-03-29 01:08:36 +08:00
|
|
|
g_return_if_fail (GIMP_IS_IMAGE (image));
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2006-03-29 01:08:36 +08:00
|
|
|
gimp_image_get_resolution (image, &xresolution, &yresolution);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
2006-03-29 01:08:36 +08:00
|
|
|
image_type = gimp_image_base_type (image);
|
2003-04-04 01:50:56 +08:00
|
|
|
|
|
|
|
if (image_type == GIMP_INDEXED)
|
|
|
|
image_type = GIMP_RGB;
|
|
|
|
|
2006-03-29 01:08:36 +08:00
|
|
|
parasite = gimp_image_parasite_find (image, "gimp-comment");
|
2003-10-15 23:30:11 +08:00
|
|
|
if (parasite)
|
|
|
|
comment = g_strndup (gimp_parasite_data (parasite),
|
|
|
|
gimp_parasite_data_size (parasite));
|
|
|
|
|
2003-04-04 01:50:56 +08:00
|
|
|
g_object_set (template,
|
2006-03-29 01:08:36 +08:00
|
|
|
"width", gimp_image_get_width (image),
|
|
|
|
"height", gimp_image_get_height (image),
|
2003-04-04 23:11:30 +08:00
|
|
|
"xresolution", xresolution,
|
|
|
|
"yresolution", yresolution,
|
2006-03-29 01:08:36 +08:00
|
|
|
"resolution-unit", gimp_image_get_unit (image),
|
2003-04-04 23:11:30 +08:00
|
|
|
"image-type", image_type,
|
2003-10-15 23:30:11 +08:00
|
|
|
"comment", comment,
|
2003-04-04 01:50:56 +08:00
|
|
|
NULL);
|
2003-10-15 23:30:11 +08:00
|
|
|
|
|
|
|
if (comment)
|
|
|
|
g_free (comment);
|
2003-04-04 01:50:56 +08:00
|
|
|
}
|
2011-03-02 17:16:43 +08:00
|
|
|
|
|
|
|
gint
|
|
|
|
gimp_template_get_width (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), 0);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->width;
|
|
|
|
}
|
|
|
|
|
|
|
|
gint
|
|
|
|
gimp_template_get_height (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), 0);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->height;
|
|
|
|
}
|
|
|
|
|
|
|
|
GimpUnit
|
|
|
|
gimp_template_get_unit (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), GIMP_UNIT_INCH);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->unit;
|
|
|
|
}
|
|
|
|
|
|
|
|
gdouble
|
|
|
|
gimp_template_get_resolution_x (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), 1.0);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->xresolution;
|
|
|
|
}
|
|
|
|
|
|
|
|
gdouble
|
|
|
|
gimp_template_get_resolution_y (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), 1.0);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->yresolution;
|
|
|
|
}
|
|
|
|
|
|
|
|
GimpUnit
|
|
|
|
gimp_template_get_resolution_unit (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), GIMP_UNIT_INCH);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->resolution_unit;
|
|
|
|
}
|
|
|
|
|
|
|
|
GimpImageBaseType
|
|
|
|
gimp_template_get_image_type (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), GIMP_RGB_IMAGE);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->image_type;
|
|
|
|
}
|
|
|
|
|
|
|
|
GimpFillType
|
|
|
|
gimp_template_get_fill_type (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), GIMP_NO_FILL);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->fill_type;
|
|
|
|
}
|
|
|
|
|
|
|
|
const gchar *
|
|
|
|
gimp_template_get_comment (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), NULL);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->comment;
|
|
|
|
}
|
|
|
|
|
|
|
|
guint64
|
|
|
|
gimp_template_get_initial_size (GimpTemplate *template)
|
|
|
|
{
|
|
|
|
g_return_val_if_fail (GIMP_IS_TEMPLATE (template), 0);
|
|
|
|
|
|
|
|
return GET_PRIVATE (template)->initial_size;
|
|
|
|
}
|