/* LIBGIMP - The GIMP Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * gimpfile_pdb.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 * . */ /* NOTE: This file is auto-generated by pdbgen.pl */ #include "config.h" #include "stamp-pdbgen.h" #include "gimp.h" /** * SECTION: gimpfile * @title: gimpfile * @short_description: Image file operations (load, export, etc.) * * Image file operations (load, export, etc.) **/ /** * gimp_file_load: * @run_mode: The run mode. * @file: The file to load. * * Loads an image file by invoking the right load handler. * * This procedure invokes the correct file load handler using magic if * possible, and falling back on the file's extension and/or prefix if * not. * * Returns: (transfer none): The output image. **/ GimpImage * gimp_file_load (GimpRunMode run_mode, GFile *file) { GimpValueArray *args; GimpValueArray *return_vals; GimpImage *image = NULL; args = gimp_value_array_new_from_types (NULL, GIMP_TYPE_RUN_MODE, run_mode, G_TYPE_FILE, file, G_TYPE_NONE); return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-file-load", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) image = GIMP_VALUES_GET_IMAGE (return_vals, 1); gimp_value_array_unref (return_vals); return image; } /** * gimp_file_load_layer: * @run_mode: The run mode. * @image: Destination image. * @file: The file to load. * * Loads an image file as a layer for an existing image. * * This procedure behaves like the file-load procedure but opens the * specified image as a layer for an existing image. The returned layer * needs to be added to the existing image with * gimp_image_insert_layer(). * * Returns: (transfer none): The layer created when loading the image file. * * Since: 2.4 **/ GimpLayer * gimp_file_load_layer (GimpRunMode run_mode, GimpImage *image, GFile *file) { GimpValueArray *args; GimpValueArray *return_vals; GimpLayer *layer = NULL; args = gimp_value_array_new_from_types (NULL, GIMP_TYPE_RUN_MODE, run_mode, GIMP_TYPE_IMAGE, image, G_TYPE_FILE, file, G_TYPE_NONE); return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-file-load-layer", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) layer = GIMP_VALUES_GET_LAYER (return_vals, 1); gimp_value_array_unref (return_vals); return layer; } /** * gimp_file_load_layers: * @run_mode: The run mode. * @image: Destination image. * @file: The file to load. * * Loads an image file as layers for an existing image. * * This procedure behaves like the file-load procedure but opens the * specified image as layers for an existing image. The returned layers * needs to be added to the existing image with * gimp_image_insert_layer(). * * Returns: (element-type GimpLayer) (array zero-terminated=1) (transfer container): * The list of loaded layers. * The returned value must be freed with g_free(). * * Since: 2.4 **/ GimpLayer ** gimp_file_load_layers (GimpRunMode run_mode, GimpImage *image, GFile *file) { GimpValueArray *args; GimpValueArray *return_vals; GimpLayer **layers = NULL; args = gimp_value_array_new_from_types (NULL, GIMP_TYPE_RUN_MODE, run_mode, GIMP_TYPE_IMAGE, image, G_TYPE_FILE, file, G_TYPE_NONE); return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-file-load-layers", args); gimp_value_array_unref (args); if (GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS) layers = g_value_dup_boxed (gimp_value_array_index (return_vals, 1)); gimp_value_array_unref (return_vals); return layers; } /** * gimp_file_save: * @run_mode: The run mode. * @image: Input image. * @file: The file to save or export the image in. * @options: (nullable): Export option settings. * * Saves to XCF or export @image to any supported format by extension. * * This procedure invokes the correct file save/export handler * according to @file's extension and/or prefix. * * The @options argument is currently unused and should be set to %NULL * right now. * * Returns: TRUE on success. **/ gboolean gimp_file_save (GimpRunMode run_mode, GimpImage *image, GFile *file, GimpExportOptions *options) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, GIMP_TYPE_RUN_MODE, run_mode, GIMP_TYPE_IMAGE, image, G_TYPE_FILE, file, GIMP_TYPE_EXPORT_OPTIONS, options, G_TYPE_NONE); return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-file-save", args); gimp_value_array_unref (args); success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; gimp_value_array_unref (return_vals); return success; } /** * gimp_file_create_thumbnail: * @image: The image. * @file: The file the thumbnail belongs to. * * Creates a thumbnail of @image for the given @file * * This procedure creates a thumbnail for the given @file and stores it * according to relevant standards. * In particular, it will follow the [Free Desktop Thumbnail Managing * Standard](https://specifications.freedesktop.org/thumbnail-spec/late * st/thumbsave.html) when relevant. * * The thumbnail is stored so that it belongs to the given @file. This * means you have to save @image under this name first. As a fallback, * the call will work if @image was exported or imported as @file. In * any other case, this procedure will fail. * * Returns: TRUE on success. **/ gboolean gimp_file_create_thumbnail (GimpImage *image, GFile *file) { GimpValueArray *args; GimpValueArray *return_vals; gboolean success = TRUE; args = gimp_value_array_new_from_types (NULL, GIMP_TYPE_IMAGE, image, G_TYPE_FILE, file, G_TYPE_NONE); return_vals = _gimp_pdb_run_procedure_array (gimp_get_pdb (), "gimp-file-create-thumbnail", args); gimp_value_array_unref (args); success = GIMP_VALUES_GET_ENUM (return_vals, 0) == GIMP_PDB_SUCCESS; gimp_value_array_unref (return_vals); return success; }