2000-06-01 20:20:13 +08:00
|
|
|
/* LIBGIMP - The GIMP Library
|
2003-07-03 08:47:26 +08:00
|
|
|
* Copyright (C) 1995-2003 Peter Mattis and Spencer Kimball
|
2000-06-01 20:20:13 +08:00
|
|
|
*
|
|
|
|
* gimpcolor_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 2 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, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* NOTE: This file is autogenerated by pdbgen.pl */
|
|
|
|
|
2002-05-14 07:30:23 +08:00
|
|
|
#include "config.h"
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
#include "gimp.h"
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_brightness_contrast:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @brightness: Brightness adjustment.
|
|
|
|
* @contrast: Contrast adjustment.
|
|
|
|
*
|
|
|
|
* Modify brightness/contrast in the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedures allows the brightness and contrast of the specified
|
|
|
|
* drawable to be modified. Both 'brightness' and 'contrast' parameters
|
|
|
|
* are defined between -127 and 127.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_brightness_contrast (gint32 drawable_ID,
|
|
|
|
gint brightness,
|
|
|
|
gint contrast)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_brightness_contrast",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, brightness,
|
|
|
|
GIMP_PDB_INT32, contrast,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_levels:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @channel: The channel to modify.
|
|
|
|
* @low_input: Intensity of lowest input.
|
|
|
|
* @high_input: Intensity of highest input.
|
|
|
|
* @gamma: Gamma correction factor.
|
|
|
|
* @low_output: Intensity of lowest output.
|
|
|
|
* @high_output: Intensity of highest output.
|
|
|
|
*
|
|
|
|
* Modifies intensity levels in the specified drawable.
|
|
|
|
*
|
|
|
|
* This tool allows intensity levels in the specified drawable to be
|
|
|
|
* remapped according to a set of parameters. The low/high input levels
|
|
|
|
* specify an initial mapping from the source intensities. The gamma
|
|
|
|
* value determines how intensities between the low and high input
|
|
|
|
* intensities are interpolated. A gamma value of 1.0 results in a
|
|
|
|
* linear interpolation. Higher gamma values result in more high-level
|
|
|
|
* intensities. Lower gamma values result in more low-level
|
|
|
|
* intensities. The low/high output levels constrain the final
|
|
|
|
* intensity mapping--that is, no final intensity will be lower than
|
|
|
|
* the low output level and no final intensity will be higher than the
|
|
|
|
* high output level. This tool is only valid on RGB color and
|
|
|
|
* grayscale images. It will not operate on indexed drawables.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2004-01-14 00:19:50 +08:00
|
|
|
gimp_levels (gint32 drawable_ID,
|
|
|
|
GimpHistogramChannel channel,
|
|
|
|
gint low_input,
|
|
|
|
gint high_input,
|
|
|
|
gdouble gamma,
|
|
|
|
gint low_output,
|
|
|
|
gint high_output)
|
2000-06-01 20:20:13 +08:00
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_levels",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, channel,
|
|
|
|
GIMP_PDB_INT32, low_input,
|
|
|
|
GIMP_PDB_INT32, high_input,
|
|
|
|
GIMP_PDB_FLOAT, gamma,
|
|
|
|
GIMP_PDB_INT32, low_output,
|
|
|
|
GIMP_PDB_INT32, high_output,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2003-08-31 23:42:39 +08:00
|
|
|
/**
|
|
|
|
* gimp_levels_auto:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
*
|
2004-11-02 00:05:19 +08:00
|
|
|
* This procedure is deprecated! Use gimp_levels_stretch() instead.
|
2003-08-31 23:42:39 +08:00
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
|
|
|
gboolean
|
|
|
|
gimp_levels_auto (gint32 drawable_ID)
|
|
|
|
{
|
|
|
|
GimpParam *return_vals;
|
|
|
|
gint nreturn_vals;
|
|
|
|
gboolean success = TRUE;
|
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_levels_auto",
|
|
|
|
&nreturn_vals,
|
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_END);
|
|
|
|
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
|
|
|
|
2004-11-02 00:20:47 +08:00
|
|
|
/**
|
|
|
|
* gimp_levels_stretch:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
*
|
|
|
|
* Automatically modifies intensity levels in the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedure allows intensity levels in the specified drawable to
|
|
|
|
* be remapped according to a set of guessed parameters. It is
|
|
|
|
* equivalent to clicking the \"Auto\" button in the Levels tool. This
|
|
|
|
* procedure is only valid on RGB color and grayscale images. It will
|
|
|
|
* not operate on indexed drawables.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
|
|
|
gboolean
|
|
|
|
gimp_levels_stretch (gint32 drawable_ID)
|
|
|
|
{
|
|
|
|
GimpParam *return_vals;
|
|
|
|
gint nreturn_vals;
|
|
|
|
gboolean success = TRUE;
|
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_levels_stretch",
|
|
|
|
&nreturn_vals,
|
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_END);
|
|
|
|
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_posterize:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @levels: Levels of posterization.
|
|
|
|
*
|
|
|
|
* Posterize the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedures reduces the number of shades allows in each
|
|
|
|
* intensity channel to the specified 'levels' parameter.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_posterize (gint32 drawable_ID,
|
|
|
|
gint levels)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_posterize",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, levels,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_desaturate:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
*
|
|
|
|
* Desaturate the contents of the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedure desaturates the contents of the specified drawable.
|
|
|
|
* This procedure only works on drawables of type RGB color.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_desaturate (gint32 drawable_ID)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_desaturate",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_equalize:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @mask_only: Equalization option.
|
|
|
|
*
|
|
|
|
* Equalize the contents of the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedure equalizes the contents of the specified drawable.
|
|
|
|
* Each intensity channel is equalizeed independently. The equalized
|
|
|
|
* intensity is given as inten' = (255 - inten). Indexed color
|
|
|
|
* drawables are not valid for this operation. The 'mask_only' option
|
|
|
|
* specifies whether to adjust only the area of the image within the
|
|
|
|
* selection bounds, or the entire image based on the histogram of the
|
|
|
|
* selected area. If there is no selection, the entire image is
|
|
|
|
* adjusted based on the histogram for the entire image.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_equalize (gint32 drawable_ID,
|
|
|
|
gboolean mask_only)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_equalize",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, mask_only,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_invert:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
*
|
|
|
|
* Invert the contents of the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedure inverts the contents of the specified drawable. Each
|
|
|
|
* intensity channel is inverted independently. The inverted intensity
|
|
|
|
* is given as inten' = (255 - inten). Indexed color drawables are not
|
|
|
|
* valid for this operation.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_invert (gint32 drawable_ID)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_invert",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_curves_spline:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @channel: The channel to modify.
|
|
|
|
* @num_points: The number of values in the control point array.
|
|
|
|
* @control_pts: The spline control points: { cp1.x, cp1.y, cp2.x, cp2.y, ... }.
|
|
|
|
*
|
|
|
|
* Modifies the intensity curve(s) for specified drawable.
|
|
|
|
*
|
|
|
|
* Modifies the intensity mapping for one channel in the specified
|
|
|
|
* drawable. The drawable must be either grayscale or RGB, and the
|
|
|
|
* channel can be either an intensity component, or the value. The
|
|
|
|
* 'control_pts' parameter is an array of integers which define a set
|
|
|
|
* of control points which describe a Catmull Rom spline which yields
|
|
|
|
* the final intensity curve. Use the 'gimp_curves_explicit' function
|
|
|
|
* to explicitly modify intensity levels.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2004-01-14 00:19:50 +08:00
|
|
|
gimp_curves_spline (gint32 drawable_ID,
|
|
|
|
GimpHistogramChannel channel,
|
|
|
|
gint num_points,
|
|
|
|
const guint8 *control_pts)
|
2000-06-01 20:20:13 +08:00
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_curves_spline",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, channel,
|
|
|
|
GIMP_PDB_INT32, num_points,
|
|
|
|
GIMP_PDB_INT8ARRAY, control_pts,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_curves_explicit:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @channel: The channel to modify.
|
|
|
|
* @num_bytes: The number of bytes in the new curve (always 256).
|
|
|
|
* @curve: The explicit curve.
|
|
|
|
*
|
|
|
|
* Modifies the intensity curve(s) for specified drawable.
|
|
|
|
*
|
|
|
|
* Modifies the intensity mapping for one channel in the specified
|
|
|
|
* drawable. The drawable must be either grayscale or RGB, and the
|
|
|
|
* channel can be either an intensity component, or the value. The
|
|
|
|
* 'curve' parameter is an array of bytes which explicitly defines how
|
|
|
|
* each pixel value in the drawable will be modified. Use the
|
|
|
|
* 'gimp_curves_spline' function to modify intensity levels with
|
|
|
|
* Catmull Rom splines.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2004-01-14 00:19:50 +08:00
|
|
|
gimp_curves_explicit (gint32 drawable_ID,
|
|
|
|
GimpHistogramChannel channel,
|
|
|
|
gint num_bytes,
|
|
|
|
const guint8 *curve)
|
2000-06-01 20:20:13 +08:00
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_curves_explicit",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, channel,
|
|
|
|
GIMP_PDB_INT32, num_bytes,
|
|
|
|
GIMP_PDB_INT8ARRAY, curve,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_color_balance:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @transfer_mode: Transfer mode.
|
|
|
|
* @preserve_lum: Preserve luminosity values at each pixel.
|
|
|
|
* @cyan_red: Cyan-Red color balance.
|
|
|
|
* @magenta_green: Magenta-Green color balance.
|
|
|
|
* @yellow_blue: Yellow-Blue color balance.
|
|
|
|
*
|
|
|
|
* Modify the color balance of the specified drawable.
|
|
|
|
*
|
|
|
|
* Modify the color balance of the specified drawable. There are three
|
|
|
|
* axis which can be modified: cyan-red, magenta-green, and
|
|
|
|
* yellow-blue. Negative values increase the amount of the former,
|
|
|
|
* positive values increase the amount of the latter. Color balance can
|
|
|
|
* be controlled with the 'transfer_mode' setting, which allows
|
|
|
|
* shadows, midtones, and highlights in an image to be affected
|
|
|
|
* differently. The 'preserve_lum' parameter, if non-zero, ensures that
|
|
|
|
* the luminosity of each pixel remains fixed.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_color_balance (gint32 drawable_ID,
|
|
|
|
GimpTransferMode transfer_mode,
|
|
|
|
gboolean preserve_lum,
|
|
|
|
gdouble cyan_red,
|
|
|
|
gdouble magenta_green,
|
|
|
|
gdouble yellow_blue)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_color_balance",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, transfer_mode,
|
|
|
|
GIMP_PDB_INT32, preserve_lum,
|
|
|
|
GIMP_PDB_FLOAT, cyan_red,
|
|
|
|
GIMP_PDB_FLOAT, magenta_green,
|
|
|
|
GIMP_PDB_FLOAT, yellow_blue,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2004-10-03 20:57:06 +08:00
|
|
|
/**
|
|
|
|
* gimp_colorize:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @hue: Hue in degrees.
|
|
|
|
* @saturation: Saturation in percent.
|
|
|
|
* @lightness: Lightness in percent.
|
|
|
|
*
|
|
|
|
* Render the drawable as a grayscale image seen through a colored
|
|
|
|
* glass.
|
|
|
|
*
|
|
|
|
* Desatures the drawable, then tints it with the specified color. This
|
|
|
|
* tool is only valid on RGB color images. It will not operate on
|
|
|
|
* grayscale or indexed drawables.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*
|
|
|
|
* Since: GIMP 2.2
|
|
|
|
*/
|
|
|
|
gboolean
|
|
|
|
gimp_colorize (gint32 drawable_ID,
|
|
|
|
gdouble hue,
|
|
|
|
gdouble saturation,
|
|
|
|
gdouble lightness)
|
|
|
|
{
|
|
|
|
GimpParam *return_vals;
|
|
|
|
gint nreturn_vals;
|
|
|
|
gboolean success = TRUE;
|
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_colorize",
|
|
|
|
&nreturn_vals,
|
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_FLOAT, hue,
|
|
|
|
GIMP_PDB_FLOAT, saturation,
|
|
|
|
GIMP_PDB_FLOAT, lightness,
|
|
|
|
GIMP_PDB_END);
|
|
|
|
|
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
|
|
|
|
|
|
|
return success;
|
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_histogram:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @channel: The channel to modify.
|
|
|
|
* @start_range: Start of the intensity measurement range.
|
|
|
|
* @end_range: End of the intensity measurement range.
|
2001-11-25 05:34:26 +08:00
|
|
|
* @mean: Mean intensity value.
|
2000-08-25 07:06:53 +08:00
|
|
|
* @std_dev: Standard deviation of intensity values.
|
2001-11-25 05:34:26 +08:00
|
|
|
* @median: Median intensity value.
|
2000-08-25 07:06:53 +08:00
|
|
|
* @pixels: Alpha-weighted pixel count for entire image.
|
|
|
|
* @count: Alpha-weighted pixel count for range.
|
|
|
|
* @percentile: Percentile that range falls under.
|
|
|
|
*
|
|
|
|
* Returns information on the intensity histogram for the specified
|
|
|
|
* drawable.
|
|
|
|
*
|
|
|
|
* This tool makes it possible to gather information about the
|
|
|
|
* intensity histogram of a drawable. A channel to examine is first
|
|
|
|
* specified. This can be either value, red, green, or blue, depending
|
|
|
|
* on whether the drawable is of type color or grayscale. The drawable
|
|
|
|
* may not be indexed. Second, a range of intensities are specified.
|
|
|
|
* The gimp_histogram function returns statistics based on the pixels
|
|
|
|
* in the drawable that fall under this range of values. Mean, standard
|
|
|
|
* deviation, median, number of pixels, and percentile are all
|
|
|
|
* returned. Additionally, the total count of pixels in the image is
|
|
|
|
* returned. Counts of pixels are weighted by any associated alpha
|
|
|
|
* values and by the current selection mask. That is, pixels that lie
|
|
|
|
* outside an active selection mask will not be counted. Similarly,
|
|
|
|
* pixels with transparent alpha values will not be counted.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2004-01-14 00:19:50 +08:00
|
|
|
gimp_histogram (gint32 drawable_ID,
|
|
|
|
GimpHistogramChannel channel,
|
|
|
|
gint start_range,
|
|
|
|
gint end_range,
|
|
|
|
gdouble *mean,
|
|
|
|
gdouble *std_dev,
|
|
|
|
gdouble *median,
|
|
|
|
gdouble *pixels,
|
|
|
|
gdouble *count,
|
|
|
|
gdouble *percentile)
|
2000-06-01 20:20:13 +08:00
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_histogram",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, channel,
|
|
|
|
GIMP_PDB_INT32, start_range,
|
|
|
|
GIMP_PDB_INT32, end_range,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-06-23 04:06:02 +08:00
|
|
|
*mean = 0.0;
|
|
|
|
*std_dev = 0.0;
|
|
|
|
*median = 0.0;
|
|
|
|
*pixels = 0.0;
|
|
|
|
*count = 0.0;
|
|
|
|
*percentile = 0.0;
|
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
|
|
|
if (success)
|
2000-06-01 20:20:13 +08:00
|
|
|
{
|
|
|
|
*mean = return_vals[1].data.d_float;
|
|
|
|
*std_dev = return_vals[2].data.d_float;
|
|
|
|
*median = return_vals[3].data.d_float;
|
|
|
|
*pixels = return_vals[4].data.d_float;
|
|
|
|
*count = return_vals[5].data.d_float;
|
|
|
|
*percentile = return_vals[6].data.d_float;
|
|
|
|
}
|
|
|
|
|
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_hue_saturation:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @hue_range: Range of affected hues.
|
|
|
|
* @hue_offset: Hue offset in degrees.
|
|
|
|
* @lightness: lightness modification.
|
|
|
|
* @saturation: saturation modification.
|
|
|
|
*
|
|
|
|
* Modify hue, lightness, and saturation in the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedures allows the hue, lightness, and saturation in the
|
|
|
|
* specified drawable to be modified. The 'hue_range' parameter
|
|
|
|
* provides the capability to limit range of affected hues.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_hue_saturation (gint32 drawable_ID,
|
|
|
|
GimpHueRange hue_range,
|
|
|
|
gdouble hue_offset,
|
|
|
|
gdouble lightness,
|
|
|
|
gdouble saturation)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_hue_saturation",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, hue_range,
|
|
|
|
GIMP_PDB_FLOAT, hue_offset,
|
|
|
|
GIMP_PDB_FLOAT, lightness,
|
|
|
|
GIMP_PDB_FLOAT, saturation,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|
|
|
|
|
2000-08-25 07:06:53 +08:00
|
|
|
/**
|
|
|
|
* gimp_threshold:
|
|
|
|
* @drawable_ID: The drawable.
|
|
|
|
* @low_threshold: The low threshold value.
|
|
|
|
* @high_threshold: The high threshold value.
|
|
|
|
*
|
|
|
|
* Threshold the specified drawable.
|
|
|
|
*
|
|
|
|
* This procedures generates a threshold map of the specified drawable.
|
|
|
|
* All pixels between the values of 'low_threshold' and
|
|
|
|
* 'high_threshold' are replaced with white, and all other pixels with
|
|
|
|
* black.
|
|
|
|
*
|
|
|
|
* Returns: TRUE on success.
|
|
|
|
*/
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_threshold (gint32 drawable_ID,
|
|
|
|
gint low_threshold,
|
|
|
|
gint high_threshold)
|
|
|
|
{
|
2000-08-03 09:35:28 +08:00
|
|
|
GimpParam *return_vals;
|
2000-06-01 20:20:13 +08:00
|
|
|
gint nreturn_vals;
|
2000-08-23 09:44:59 +08:00
|
|
|
gboolean success = TRUE;
|
2000-06-01 20:20:13 +08:00
|
|
|
|
|
|
|
return_vals = gimp_run_procedure ("gimp_threshold",
|
|
|
|
&nreturn_vals,
|
2000-08-03 09:35:28 +08:00
|
|
|
GIMP_PDB_DRAWABLE, drawable_ID,
|
|
|
|
GIMP_PDB_INT32, low_threshold,
|
|
|
|
GIMP_PDB_INT32, high_threshold,
|
|
|
|
GIMP_PDB_END);
|
2000-06-01 20:20:13 +08:00
|
|
|
|
2000-08-23 09:44:59 +08:00
|
|
|
success = return_vals[0].data.d_status == GIMP_PDB_SUCCESS;
|
|
|
|
|
2000-06-01 20:20:13 +08:00
|
|
|
gimp_destroy_params (return_vals, nreturn_vals);
|
2000-08-23 09:44:59 +08:00
|
|
|
|
|
|
|
return success;
|
2000-06-01 20:20:13 +08:00
|
|
|
}
|