/* LIBPIKA - The PIKA Library * Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball * * pikaimageconvert_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 "pika.h" /** * SECTION: pikaimageconvert * @title: pikaimageconvert * @short_description: Conversions between RGB, indexed, and grayscale modes. * * Conversions between RGB, indexed, and grayscale modes. **/ /** * pika_image_convert_rgb: * @image: The image. * * Convert specified image to RGB color * * This procedure converts the specified image to RGB color. This * process requires an image in Grayscale or Indexed color mode. No * image content is lost in this process aside from the colormap for an * indexed image. * * Returns: TRUE on success. **/ gboolean pika_image_convert_rgb (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-convert-rgb", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_convert_grayscale: * @image: The image. * * Convert specified image to grayscale * * This procedure converts the specified image to grayscale. This * process requires an image in RGB or Indexed color mode. * * Returns: TRUE on success. **/ gboolean pika_image_convert_grayscale (PikaImage *image) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-convert-grayscale", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_convert_indexed: * @image: The image. * @dither_type: The dither type to use. * @palette_type: The type of palette to use. * @num_cols: The number of colors to quantize to, ignored unless (palette_type == PIKA_CONVERT_PALETTE_GENERATE). * @alpha_dither: Dither transparency to fake partial opacity. * @remove_unused: Remove unused or duplicate color entries from final palette, ignored if (palette_type == PIKA_CONVERT_PALETTE_GENERATE). * @palette: The name of the custom palette to use, ignored unless (palette_type == PIKA_CONVERT_PALETTE_CUSTOM). * * Convert specified image to and Indexed image * * This procedure converts the specified image to 'indexed' color. This * process requires an image in RGB or Grayscale mode. The * 'palette_type' specifies what kind of palette to use, A type of '0' * means to use an optimal palette of 'num_cols' generated from the * colors in the image. A type of '1' means to re-use the previous * palette (not currently implemented). A type of '2' means to use the * so-called WWW-optimized palette. Type '3' means to use only black * and white colors. A type of '4' means to use a palette from the pika * palettes directories. The 'dither type' specifies what kind of * dithering to use. '0' means no dithering, '1' means standard * Floyd-Steinberg error diffusion, '2' means Floyd-Steinberg error * diffusion with reduced bleeding, '3' means dithering based on pixel * location ('Fixed' dithering). * * Returns: TRUE on success. **/ gboolean pika_image_convert_indexed (PikaImage *image, PikaConvertDitherType dither_type, PikaConvertPaletteType palette_type, gint num_cols, gboolean alpha_dither, gboolean remove_unused, const gchar *palette) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, PIKA_TYPE_CONVERT_DITHER_TYPE, dither_type, PIKA_TYPE_CONVERT_PALETTE_TYPE, palette_type, G_TYPE_INT, num_cols, G_TYPE_BOOLEAN, alpha_dither, G_TYPE_BOOLEAN, remove_unused, G_TYPE_STRING, palette, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-convert-indexed", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_convert_set_dither_matrix: * @width: Width of the matrix (0 to reset to default matrix). * @height: Height of the matrix (0 to reset to default matrix). * @matrix: The matrix -- all values must be >= 1. * * Set dither matrix for conversion to indexed * * This procedure sets the dither matrix used when converting images to * INDEXED mode with positional dithering. * * Returns: TRUE on success. * * Since: 2.4 **/ gboolean pika_image_convert_set_dither_matrix (gint width, gint height, GBytes *matrix) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, G_TYPE_INT, width, G_TYPE_INT, height, G_TYPE_BYTES, matrix, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-convert-set-dither-matrix", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; } /** * pika_image_convert_precision: * @image: The image. * @precision: The new precision. * * Convert the image to the specified precision * * This procedure converts the image to the specified precision. Note * that indexed images cannot be converted and are always in * PIKA_PRECISION_U8. * * Returns: TRUE on success. * * Since: 2.10 **/ gboolean pika_image_convert_precision (PikaImage *image, PikaPrecision precision) { PikaValueArray *args; PikaValueArray *return_vals; gboolean success = TRUE; args = pika_value_array_new_from_types (NULL, PIKA_TYPE_IMAGE, image, PIKA_TYPE_PRECISION, precision, G_TYPE_NONE); return_vals = pika_pdb_run_procedure_array (pika_get_pdb (), "pika-image-convert-precision", args); pika_value_array_unref (args); success = PIKA_VALUES_GET_ENUM (return_vals, 0) == PIKA_PDB_SUCCESS; pika_value_array_unref (return_vals); return success; }