static void gimp_curves_tool_finalize (GObject *object) { GimpCurvesTool *tool = GIMP_CURVES_TOOL (object); gimp_lut_free (tool->lut); G_OBJECT_CLASS (parent_class)->finalize (object); }
static void gimp_brightness_contrast_tool_finalize (GObject *object) { GimpBrightnessContrastTool *bc_tool = GIMP_BRIGHTNESS_CONTRAST_TOOL (object); if (bc_tool->lut) { gimp_lut_free (bc_tool->lut); bc_tool->lut = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }
static void gimp_posterize_tool_finalize (GObject *object) { GimpPosterizeTool *posterize_tool = GIMP_POSTERIZE_TOOL (object); if (posterize_tool->lut) { gimp_lut_free (posterize_tool->lut); posterize_tool->lut = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }
static void gimp_levels_tool_finalize (GObject *object) { GimpLevelsTool *tool = GIMP_LEVELS_TOOL (object); gimp_lut_free (tool->lut); if (tool->histogram) { gimp_histogram_unref (tool->histogram); tool->histogram = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }
void gimp_drawable_brightness_contrast (GimpDrawable *drawable, GimpProgress *progress, gint brightness, gint contrast) { GimpBrightnessContrastConfig *config; g_return_if_fail (GIMP_IS_DRAWABLE (drawable)); g_return_if_fail (! gimp_drawable_is_indexed (drawable)); g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable))); config = g_object_new (GIMP_TYPE_BRIGHTNESS_CONTRAST_CONFIG, "brightness", brightness / 127.0, "contrast", contrast / 127.0, NULL); if (gimp_use_gegl (gimp_item_get_image (GIMP_ITEM (drawable))->gimp)) { GeglNode *node; node = g_object_new (GEGL_TYPE_NODE, "operation", "gimp:brightness-contrast", "config", config, NULL); gimp_drawable_apply_operation (drawable, progress, C_("undo-type", "Brightness-Contrast") , node, TRUE); g_object_unref (node); } else { GimpLut *lut; lut = brightness_contrast_lut_new (config->brightness / 2.0, config->contrast, gimp_drawable_bytes (drawable)); gimp_drawable_process_lut (drawable, progress, C_("undo-type", "Brightness-Contrast"), lut); gimp_lut_free (lut); } g_object_unref (config); }
void gimp_drawable_equalize (GimpDrawable *drawable, gboolean mask_only) { GimpHistogram *hist; GimpLut *lut; g_return_if_fail (GIMP_IS_DRAWABLE (drawable)); g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable))); hist = gimp_histogram_new (); gimp_drawable_calculate_histogram (drawable, hist); lut = equalize_lut_new (hist, gimp_drawable_bytes (drawable)); gimp_histogram_unref (hist); gimp_drawable_process_lut (drawable, NULL, _("Equalize"), lut); gimp_lut_free (lut); }
void gimp_drawable_posterize (GimpDrawable *drawable, GimpProgress *progress, gint levels) { GimpPosterizeConfig *config; g_return_if_fail (GIMP_IS_DRAWABLE (drawable)); g_return_if_fail (! gimp_drawable_is_indexed (drawable)); g_return_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable))); config = g_object_new (GIMP_TYPE_POSTERIZE_CONFIG, "levels", levels, NULL); if (gimp_use_gegl (gimp_item_get_image (GIMP_ITEM (drawable))->gimp)) { GeglNode *node; node = g_object_new (GEGL_TYPE_NODE, "operation", "gimp:posterize", NULL); gegl_node_set (node, "config", config, NULL); gimp_drawable_apply_operation (drawable, progress, _("Posterize"), node, TRUE); g_object_unref (node); } else { GimpLut *lut; lut = posterize_lut_new (config->levels, gimp_drawable_bytes (drawable)); gimp_drawable_process_lut (drawable, progress, _("Posterize"), lut); gimp_lut_free (lut); } g_object_unref (config); }
static void gimp_drawable_curves (GimpDrawable *drawable, GimpProgress *progress, GimpCurvesConfig *config) { if (gimp_use_gegl (gimp_item_get_image (GIMP_ITEM (drawable))->gimp)) { GeglNode *node; node = g_object_new (GEGL_TYPE_NODE, "operation", "gimp:curves", NULL); gegl_node_set (node, "config", config, NULL); gimp_drawable_apply_operation (drawable, progress, C_("undo-type", "Curves"), node, TRUE); g_object_unref (node); } else { GimpLut *lut = gimp_lut_new (); Curves cruft; gimp_curves_config_to_cruft (config, &cruft, gimp_drawable_is_rgb (drawable)); gimp_lut_setup (lut, (GimpLutFunc) curves_lut_func, &cruft, gimp_drawable_bytes (drawable)); gimp_drawable_process_lut (drawable, progress, C_("undo-type", "Curves"), lut); gimp_lut_free (lut); } }