summaryrefslogtreecommitdiffstats
path: root/libgimp/gimpimage.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:13:10 +0000
commit3c57dd931145d43f2b0aef96c4d178135956bf91 (patch)
tree3de698981e9f0cc2c4f9569b19a5f3595e741f6b /libgimp/gimpimage.c
parentInitial commit. (diff)
downloadgimp-3c57dd931145d43f2b0aef96c4d178135956bf91.tar.xz
gimp-3c57dd931145d43f2b0aef96c4d178135956bf91.zip
Adding upstream version 2.10.36.upstream/2.10.36
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libgimp/gimpimage.c')
-rw-r--r--libgimp/gimpimage.c520
1 files changed, 520 insertions, 0 deletions
diff --git a/libgimp/gimpimage.c b/libgimp/gimpimage.c
new file mode 100644
index 0000000..2b3c110
--- /dev/null
+++ b/libgimp/gimpimage.c
@@ -0,0 +1,520 @@
+/* LIBGIMP - The GIMP Library
+ * Copyright (C) 1995-2000 Peter Mattis and Spencer Kimball
+ *
+ * gimpimage.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
+ * <https://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include "gimp.h"
+#include "gimpimage.h"
+
+/**
+ * gimp_image_get_colormap:
+ * @image_ID: The image.
+ * @num_colors: Returns the number of colors in the colormap array.
+ *
+ * Returns the image's colormap
+ *
+ * This procedure returns an actual pointer to the image's colormap, as
+ * well as the number of colors contained in the colormap. If the image
+ * is not of base type INDEXED, this pointer will be NULL.
+ *
+ * Returns: The image's colormap.
+ */
+guchar *
+gimp_image_get_colormap (gint32 image_ID,
+ gint *num_colors)
+{
+ gint num_bytes;
+ guchar *cmap;
+
+ cmap = _gimp_image_get_colormap (image_ID, &num_bytes);
+
+ if (num_colors)
+ *num_colors = num_bytes / 3;
+
+ return cmap;
+}
+
+/**
+ * gimp_image_set_colormap:
+ * @image_ID: The image.
+ * @colormap: The new colormap values.
+ * @num_colors: Number of colors in the colormap array.
+ *
+ * Sets the entries in the image's colormap.
+ *
+ * This procedure sets the entries in the specified image's colormap.
+ * The number of colors is specified by the \"num_colors\" parameter
+ * and corresponds to the number of INT8 triples that must be contained
+ * in the \"cmap\" array.
+ *
+ * Returns: TRUE on success.
+ */
+gboolean
+gimp_image_set_colormap (gint32 image_ID,
+ const guchar *colormap,
+ gint num_colors)
+{
+ return _gimp_image_set_colormap (image_ID, num_colors * 3, colormap);
+}
+
+guchar *
+gimp_image_get_thumbnail_data (gint32 image_ID,
+ gint *width,
+ gint *height,
+ gint *bpp)
+{
+ gint ret_width;
+ gint ret_height;
+ guchar *image_data;
+ gint data_size;
+
+ _gimp_image_thumbnail (image_ID,
+ *width,
+ *height,
+ &ret_width,
+ &ret_height,
+ bpp,
+ &data_size,
+ &image_data);
+
+ *width = ret_width;
+ *height = ret_height;
+
+ return image_data;
+}
+
+/**
+ * gimp_image_get_metadata:
+ * @image_ID: The image.
+ *
+ * Returns the image's metadata.
+ *
+ * Returns exif/iptc/xmp metadata from the image.
+ *
+ * Returns: The exif/ptc/xmp metadata, or %NULL if there is none.
+ *
+ * Since: 2.10
+ **/
+GimpMetadata *
+gimp_image_get_metadata (gint32 image_ID)
+{
+ GimpMetadata *metadata = NULL;
+ gchar *metadata_string;
+
+ metadata_string = _gimp_image_get_metadata (image_ID);
+ if (metadata_string)
+ {
+ metadata = gimp_metadata_deserialize (metadata_string);
+ g_free (metadata_string);
+ }
+
+ return metadata;
+}
+
+/**
+ * gimp_image_set_metadata:
+ * @image_ID: The image.
+ * @metadata: The exif/ptc/xmp metadata.
+ *
+ * Set the image's metadata.
+ *
+ * Sets exif/iptc/xmp metadata on the image, or deletes it if
+ * @metadata is %NULL.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.10
+ **/
+gboolean
+gimp_image_set_metadata (gint32 image_ID,
+ GimpMetadata *metadata)
+{
+ gchar *metadata_string = NULL;
+ gboolean success;
+
+ if (metadata)
+ metadata_string = gimp_metadata_serialize (metadata);
+
+ success = _gimp_image_set_metadata (image_ID, metadata_string);
+
+ if (metadata_string)
+ g_free (metadata_string);
+
+ return success;
+}
+
+/**
+ * gimp_image_get_cmap:
+ * @image_ID: The image.
+ * @num_colors: Number of colors in the colormap array.
+ *
+ * Deprecated: Use gimp_image_get_colormap() instead.
+ *
+ * Returns: The image's colormap.
+ */
+guchar *
+gimp_image_get_cmap (gint32 image_ID,
+ gint *num_colors)
+{
+ return gimp_image_get_colormap (image_ID, num_colors);
+}
+
+/**
+ * gimp_image_set_cmap:
+ * @image_ID: The image.
+ * @cmap: The new colormap values.
+ * @num_colors: Number of colors in the colormap array.
+ *
+ * Deprecated: Use gimp_image_set_colormap() instead.
+ *
+ * Returns: TRUE on success.
+ */
+gboolean
+gimp_image_set_cmap (gint32 image_ID,
+ const guchar *cmap,
+ gint num_colors)
+{
+ return gimp_image_set_colormap (image_ID, cmap, num_colors);
+}
+
+/**
+ * gimp_image_get_layer_position:
+ * @image_ID: The image.
+ * @layer_ID: The layer.
+ *
+ * Deprecated: Use gimp_image_get_item_position() instead.
+ *
+ * Returns: The position of the layer in the layer stack.
+ *
+ * Since: 2.4
+ **/
+gint
+gimp_image_get_layer_position (gint32 image_ID,
+ gint32 layer_ID)
+{
+ return gimp_image_get_item_position (image_ID, layer_ID);
+}
+
+/**
+ * gimp_image_raise_layer:
+ * @image_ID: The image.
+ * @layer_ID: The layer to raise.
+ *
+ * Deprecated: Use gimp_image_raise_item() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_raise_layer (gint32 image_ID,
+ gint32 layer_ID)
+{
+ return gimp_image_raise_item (image_ID, layer_ID);
+}
+
+/**
+ * gimp_image_lower_layer:
+ * @image_ID: The image.
+ * @layer_ID: The layer to lower.
+ *
+ * Deprecated: Use gimp_image_lower_item() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_lower_layer (gint32 image_ID,
+ gint32 layer_ID)
+{
+ return gimp_image_lower_item (image_ID, layer_ID);
+}
+
+/**
+ * gimp_image_raise_layer_to_top:
+ * @image_ID: The image.
+ * @layer_ID: The layer to raise to top.
+ *
+ * Deprecated: Use gimp_image_raise_item_to_top() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_raise_layer_to_top (gint32 image_ID,
+ gint32 layer_ID)
+{
+ return gimp_image_raise_item_to_top (image_ID, layer_ID);
+}
+
+/**
+ * gimp_image_lower_layer_to_bottom:
+ * @image_ID: The image.
+ * @layer_ID: The layer to lower to bottom.
+ *
+ * Deprecated: Use gimp_image_lower_item_to_bottom() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_lower_layer_to_bottom (gint32 image_ID,
+ gint32 layer_ID)
+{
+ return gimp_image_lower_item_to_bottom (image_ID, layer_ID);
+}
+
+/**
+ * gimp_image_get_channel_position:
+ * @image_ID: The image.
+ * @channel_ID: The channel.
+ *
+ * Deprecated: Use gimp_image_get_item_position() instead.
+ *
+ * Returns: The position of the channel in the channel stack.
+ *
+ * Since: 2.4
+ **/
+gint
+gimp_image_get_channel_position (gint32 image_ID,
+ gint32 channel_ID)
+{
+ return gimp_image_get_item_position (image_ID, channel_ID);
+}
+
+/**
+ * gimp_image_raise_channel:
+ * @image_ID: The image.
+ * @channel_ID: The channel to raise.
+ *
+ * Deprecated: Use gimp_image_raise_item() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_raise_channel (gint32 image_ID,
+ gint32 channel_ID)
+{
+ return gimp_image_raise_item (image_ID, channel_ID);
+}
+
+/**
+ * gimp_image_lower_channel:
+ * @image_ID: The image.
+ * @channel_ID: The channel to lower.
+ *
+ * Deprecated: Use gimp_image_lower_item() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_lower_channel (gint32 image_ID,
+ gint32 channel_ID)
+{
+ return gimp_image_lower_item (image_ID, channel_ID);
+}
+
+/**
+ * gimp_image_get_vectors_position:
+ * @image_ID: The image.
+ * @vectors_ID: The vectors object.
+ *
+ * Deprecated: Use gimp_image_get_item_position() instead.
+ *
+ * Returns: The position of the vectors object in the vectors stack.
+ *
+ * Since: 2.4
+ **/
+gint
+gimp_image_get_vectors_position (gint32 image_ID,
+ gint32 vectors_ID)
+{
+ return gimp_image_get_item_position (image_ID, vectors_ID);
+}
+
+/**
+ * gimp_image_raise_vectors:
+ * @image_ID: The image.
+ * @vectors_ID: The vectors object to raise.
+ *
+ * Deprecated: Use gimp_image_raise_item() instead.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.4
+ **/
+gboolean
+gimp_image_raise_vectors (gint32 image_ID,
+ gint32 vectors_ID)
+{
+ return gimp_image_raise_item (image_ID, vectors_ID);
+}
+
+/**
+ * gimp_image_lower_vectors:
+ * @image_ID: The image.
+ * @vectors_ID: The vectors object to lower.
+ *
+ * Deprecated: Use gimp_image_lower_item() instead.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.4
+ **/
+gboolean
+gimp_image_lower_vectors (gint32 image_ID,
+ gint32 vectors_ID)
+{
+ return gimp_image_lower_item (image_ID, vectors_ID);
+}
+
+/**
+ * gimp_image_raise_vectors_to_top:
+ * @image_ID: The image.
+ * @vectors_ID: The vectors object to raise to top.
+ *
+ * Deprecated: Use gimp_image_raise_item_to_top() instead.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.4
+ **/
+gboolean
+gimp_image_raise_vectors_to_top (gint32 image_ID,
+ gint32 vectors_ID)
+{
+ return gimp_image_raise_item_to_top (image_ID, vectors_ID);
+}
+
+/**
+ * gimp_image_lower_vectors_to_bottom:
+ * @image_ID: The image.
+ * @vectors_ID: The vectors object to lower to bottom.
+ *
+ * Deprecated: Use gimp_image_lower_item_to_bottom() instead.
+ *
+ * Returns: TRUE on success.
+ *
+ * Since: 2.4
+ **/
+gboolean
+gimp_image_lower_vectors_to_bottom (gint32 image_ID,
+ gint32 vectors_ID)
+{
+ return gimp_image_lower_item_to_bottom (image_ID, vectors_ID);
+}
+
+/**
+ * gimp_image_parasite_find:
+ * @image_ID: The image.
+ * @name: The name of the parasite to find.
+ *
+ * Deprecated: Use gimp_image_get_parasite() instead.
+ *
+ * Returns: The found parasite.
+ **/
+GimpParasite *
+gimp_image_parasite_find (gint32 image_ID,
+ const gchar *name)
+{
+ return gimp_image_get_parasite (image_ID, name);
+}
+
+/**
+ * gimp_image_parasite_attach:
+ * @image_ID: The image.
+ * @parasite: The parasite to attach to an image.
+ *
+ * Deprecated: Use gimp_image_attach_parasite() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_parasite_attach (gint32 image_ID,
+ const GimpParasite *parasite)
+{
+ return gimp_image_attach_parasite (image_ID, parasite);
+}
+
+/**
+ * gimp_image_parasite_detach:
+ * @image_ID: The image.
+ * @name: The name of the parasite to detach from an image.
+ *
+ * Deprecated: Use gimp_image_detach_parasite() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_parasite_detach (gint32 image_ID,
+ const gchar *name)
+{
+ return gimp_image_detach_parasite (image_ID, name);
+}
+
+/**
+ * gimp_image_parasite_list:
+ * @image_ID: The image.
+ * @num_parasites: The number of attached parasites.
+ * @parasites: The names of currently attached parasites.
+ *
+ * Deprecated: Use gimp_image_get_parasite_list() instead.
+ *
+ * Returns: TRUE on success.
+ **/
+gboolean
+gimp_image_parasite_list (gint32 image_ID,
+ gint *num_parasites,
+ gchar ***parasites)
+{
+ *parasites = gimp_image_get_parasite_list (image_ID, num_parasites);
+
+ return *parasites != NULL;
+}
+
+/**
+ * gimp_image_attach_new_parasite:
+ * @image_ID: the ID of the image to attach the #GimpParasite to.
+ * @name: the name of the #GimpParasite to create and attach.
+ * @flags: the flags set on the #GimpParasite.
+ * @size: the size of the parasite data in bytes.
+ * @data: a pointer to the data attached with the #GimpParasite.
+ *
+ * Convenience function that creates a parasite and attaches it
+ * to GIMP.
+ *
+ * Deprecated: Use gimp_image_attach_parasite() instead.
+ *
+ * Return value: TRUE on successful creation and attachment of
+ * the new parasite.
+ *
+ * See Also: gimp_image_parasite_attach()
+ */
+gboolean
+gimp_image_attach_new_parasite (gint32 image_ID,
+ const gchar *name,
+ gint flags,
+ gint size,
+ gconstpointer data)
+{
+ GimpParasite *parasite = gimp_parasite_new (name, flags, size, data);
+ gboolean success;
+
+ success = gimp_image_attach_parasite (image_ID, parasite);
+
+ gimp_parasite_free (parasite);
+
+ return success;
+}