From 5c1676dfe6d2f3c837a5e074117b45613fd29a72 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:30:19 +0200 Subject: Adding upstream version 2.10.34. Signed-off-by: Daniel Baumann --- libgimp/gimpimage.c | 520 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 520 insertions(+) create mode 100644 libgimp/gimpimage.c (limited to 'libgimp/gimpimage.c') 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 + * . + */ + +#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; +} -- cgit v1.2.3