#include <gimp-print/gimp-print.h>
#include "gimp-print-internal.h"
#include <gimp-print/gimp-print-intl-internal.h>
#include <math.h>
#include <string.h>
#include "module.h"
#include "xml.h"
Go to the source code of this file.
Data Structures | |
struct | curve_param_t |
struct | float_param_t |
struct | lut_t |
Defines | |
#define | LUM_RED 31 |
#define | LUM_GREEN 61 |
#define | LUM_BLUE 8 |
#define | FMAX(a, b) ((a) > (b) ? (a) : (b)) |
#define | FMIN(a, b) ((a) < (b) ? (a) : (b)) |
#define | RGB_TO_RGB_FUNC(T, bits) |
#define | FAST_RGB_TO_RGB_FUNC(T, bits) |
#define | GRAY_TO_RGB_FUNC(T, bits) |
#define | RGB_TO_KCMY_FUNC(name, bits) |
#define | RGB_TO_KCMY_LINE_ART_FUNC(T, name) |
#define | CMYK_TO_KCMY_LINE_ART_FUNC(T, name) |
#define | GRAY_TO_COLOR_LINE_ART_FUNC(T, name, bits, channels) |
#define | RGB_TO_RGB_LINE_ART_FUNC(T, name) |
#define | COLOR_TO_GRAY_LINE_ART_FUNC(T, name, channels, max_channels) |
#define | CMYK_TO_KCMY_FUNC(T, size) |
#define | GRAY_TO_GRAY_FUNC(T, bits) |
#define | COLOR_TO_GRAY_FUNC(T, bits) |
#define | CMYK_TO_GRAY_FUNC(T, size) |
#define | SET_COLORFUNC(cfunc, initfunc) |
#define | stpi_module_version color_traditional_LTX_stpi_module_version |
#define | stpi_module_data color_traditional_LTX_stpi_module_data |
Typedefs | |
typedef unsigned(* | stp_convert_t )(stp_const_vars_t vars, const unsigned char *in, unsigned short *out) |
Functions | |
void | initialize_gcr_curve (stp_const_vars_t vars) |
stp_curve_t | compute_gcr_curve (stp_const_vars_t vars) |
void | calc_rgb_to_hsl (unsigned short *rgb, double *hue, double *sat, double *lightness) |
double | hsl_value (double n1, double n2, double hue) |
void | calc_hsl_to_rgb (unsigned short *rgb, double h, double s, double l) |
double | update_saturation (double sat, double adjust, double isat) |
void | update_saturation_from_rgb (unsigned short *rgb, double adjust, double isat) |
double | adjust_hue (stp_curve_t hue_map, double hue, size_t points) |
void | adjust_hsl (unsigned short *rgbout, lut_t *lut, double ssat, double isat, size_t h_points, size_t s_points, size_t l_points, int split_saturation) |
void | adjust_hsl_bright (unsigned short *rgbout, lut_t *lut, double ssat, double isat, size_t h_points, size_t s_points, size_t l_points, int split_saturation) |
void | lookup_rgb (lut_t *lut, unsigned short *rgbout, const unsigned short *red, const unsigned short *green, const unsigned short *blue) |
unsigned | generic_cmy_to_kcmy (stp_const_vars_t vars, const unsigned short *in, unsigned short *out) |
unsigned | cmyk_16_to_gray_raw (stp_const_vars_t vars, const unsigned char *in, unsigned short *out) |
unsigned | cmyk_16_to_kcmy_raw (stp_const_vars_t vars, const unsigned char *in, unsigned short *out) |
unsigned | raw_to_raw (stp_const_vars_t vars, const unsigned char *in, unsigned short *out) |
void | initialize_channels (stp_vars_t v, stp_image_t *image) |
int | stpi_color_traditional_get_row (stp_vars_t v, stp_image_t *image, int row, unsigned *zero_mask) |
lut_t * | allocate_lut (void) |
void * | copy_lut (void *vlut) |
void | free_lut (void *vlut) |
stp_curve_t | compute_a_curve (stp_curve_t curve, double c_gamma, lut_t *lut) |
void | invert_curve (stp_curve_t curve, int in_model, int out_model) |
void | compute_one_lut (stp_curve_t lut_curve, stp_const_curve_t curve, double density, lut_t *lut) |
void | initialize_cmyk_lut (stp_const_vars_t vars, size_t count) |
void | initialize_composite_curve (stp_const_vars_t v, size_t count) |
void | initialize_nothing (stp_const_vars_t v, size_t count) |
void | initialize_color_curves (stp_const_vars_t v, size_t count) |
void | stpi_compute_lut (stp_vars_t v, size_t steps) |
void | setup_cmyk_output (stp_vars_t v, stp_image_t *image, size_t steps, int itype) |
void | setup_color_output (stp_vars_t v, stp_image_t *image, size_t steps, int itype) |
void | setup_gray_output (stp_vars_t v, stp_image_t *image, size_t steps, int itype) |
int | stpi_color_traditional_init (stp_vars_t v, stp_image_t *image, size_t steps) |
void | initialize_standard_curves (void) |
stp_parameter_list_t | stpi_color_traditional_list_parameters (stp_const_vars_t v) |
void | stpi_color_traditional_describe_parameter (stp_const_vars_t v, const char *name, stp_parameter_t *description) |
int | color_traditional_module_init (void) |
int | color_traditional_module_exit (void) |
Variables | |
const float_param_t | float_parameters [] |
const int | float_parameter_count |
int | standard_curves_initialized = 0 |
stp_curve_t | hue_map_bounds = NULL |
stp_curve_t | lum_map_bounds = NULL |
stp_curve_t | sat_map_bounds = NULL |
stp_curve_t | color_curve_bounds = NULL |
stp_curve_t | gcr_curve_bounds = NULL |
curve_param_t | curve_parameters [] |
const int | curve_parameter_count |
const stpi_colorfuncs_t | stpi_color_traditional_colorfuncs |
const stpi_internal_color_t | stpi_color_traditional_module_data |
stpi_module_version_t | stpi_module_version = {0, 0} |
stpi_module_t | stpi_module_data |
|
Value: static unsigned \ cmyk_##size##_to_gray(stp_const_vars_t vars, \ const unsigned char *in, \ unsigned short *out) \ { \ int i; \ int j; \ int nz = 0; \ const T *s_in = (const T *) in; \ lut_t *lut = (lut_t *)(stpi_get_component_data(vars, "Color")); \ \ for (i = 0; i < lut->image_width; i++, s_in += 4, out ++) \ { \ for (j = 0; j < 4; j++) \ { \ nz |= s_in[0]; \ out[0] = lut->cmyk_lut[s_in[0]]; \ } \ } \ return nz ? 1 : 0; \ } Definition at line 1293 of file print-color-new.c. |
|
Value: static unsigned \ cmyk_##size##_to_kcmy(stp_const_vars_t vars, \ const unsigned char *in, \ unsigned short *out) \ { \ int i; \ unsigned retval = 0; \ int j; \ int nz[4]; \ const T *s_in = (const T *) in; \ lut_t *lut = (lut_t *)(stpi_get_component_data(vars, "Color")); \ \ memset(nz, 0, sizeof(nz)); \ \ for (i = 0; i < lut->image_width; i++, out += 4) \ { \ for (j = 0; j < 4; j++) \ { \ int outpos = (j + 1) & 3; \ int inval = *s_in++; \ nz[outpos] |= j; \ out[outpos] = lut->cmyk_lut[inval]; \ } \ } \ for (j = 0; j < 4; j++) \ if (nz[j] == 0) \ retval |= (1 << j); \ return retval; \ } Definition at line 1159 of file print-color-new.c. |
|
Definition at line 997 of file print-color-new.c. |
|
Definition at line 1242 of file print-color-new.c. |
|
Definition at line 1119 of file print-color-new.c. |
|
Definition at line 794 of file print-color-new.c. |
|
Definition at line 328 of file print-color-new.c. |
|
Definition at line 329 of file print-color-new.c. |
|
Value: static unsigned \ gray_##bits##_to_##name##_line_art(stp_const_vars_t vars, \ const unsigned char *in, \ unsigned short *out) \ { \ int i; \ int z = (1 << channels) - 1; \ int desired_high_bit = 0; \ unsigned high_bit = 1 << ((sizeof(T) * 8) - 1); \ const T *s_in = (const T *) in; \ lut_t *lut = (lut_t *)(stpi_get_component_data(vars, "Color")); \ int width = lut->image_width; \ memset(out, 0, width * channels * sizeof(unsigned short)); \ if (lut->output_color_model == lut->input_color_model) \ desired_high_bit = high_bit; \ \ for (i = 0; i < width; i++, out += channels, s_in++) \ { \ if ((s_in[0] & high_bit) == desired_high_bit) \ { \ int j; \ z = 0; \ for (j = 0; j < channels; j++) \ out[j] = 65535; \ } \ } \ return z; \ } Definition at line 1043 of file print-color-new.c. |
|
Definition at line 1199 of file print-color-new.c. |
|
Definition at line 865 of file print-color-new.c. |
|
Definition at line 324 of file print-color-new.c. |
|
Definition at line 323 of file print-color-new.c. |
|
Definition at line 322 of file print-color-new.c. |
|
Value: static unsigned \ name##_##bits##_to_kcmy(stp_const_vars_t vars, const unsigned char *in, \ unsigned short *out) \ { \ lut_t *lut = (lut_t *)(stpi_get_component_data(vars, "Color")); \ if (!lut->cmy_tmp) \ lut->cmy_tmp = stpi_malloc(4 * 2 * lut->image_width); \ name##_##bits##_to_rgb(vars, in, lut->cmy_tmp); \ return generic_cmy_to_kcmy(vars, lut->cmy_tmp, out); \ } Definition at line 922 of file print-color-new.c. |
|
Definition at line 941 of file print-color-new.c. |
|
Definition at line 701 of file print-color-new.c. |
|
Definition at line 1078 of file print-color-new.c. |
|
Value: if (!cfunc) \ stpi_erprintf("No colorfunc chosen "); \ stpi_dprintf(STPI_DBG_COLORFUNC, v, \ "at line %d stp_choose_colorfunc(type %d bpp %d) ==> %s, %d\n", \ __LINE__, lut->output_type, image_bpp, #cfunc, \ lut->out_channels); \ lut->colorfunc = cfunc; \ if (initfunc) \ (initfunc)(v, steps); \ break Definition at line 1911 of file print-color-new.c. Referenced by setup_cmyk_output(), setup_color_output(), setup_gray_output(), and stpi_color_traditional_init(). |
|
Definition at line 2415 of file print-color-new.c. |
|
Definition at line 2414 of file print-color-new.c. |
|
Definition at line 48 of file print-color-new.c. |
|
Definition at line 501 of file print-color-new.c. References adjust_hue(), calc_hsl_to_rgb(), calc_rgb_to_hsl(), lut_t::hue_map, lut_t::lum_map, lut_t::sat_map, stp_curve_interpolate_value(), and update_saturation(). |
|
Definition at line 572 of file print-color-new.c. References adjust_hue(), calc_hsl_to_rgb(), calc_rgb_to_hsl(), lut_t::hue_map, lut_t::lum_map, stp_curve_interpolate_value(), and update_saturation(). |
|
Definition at line 483 of file print-color-new.c. References stp_curve_interpolate_value(). Referenced by adjust_hsl(), and adjust_hsl_bright(). |
|
Definition at line 1431 of file print-color-new.c. References lut_t::black, lut_t::channels_are_initialized, lut_t::cmy_tmp, lut_t::cmyk_lut, lut_t::colorfunc, lut_t::composite, lut_t::cyan, lut_t::gcr_curve, lut_t::hue_map, lut_t::image_bpp, lut_t::image_width, lut_t::in_data, lut_t::lum_map, lut_t::magenta, lut_t::sat_map, lut_t::steps, stp_curve_create(), stp_curve_set_bounds(), STP_CURVE_WRAP_NONE, and lut_t::yellow. Referenced by copy_lut(), stpi_color_traditional_init(), and stpi_compute_lut(). |
|
Definition at line 427 of file print-color-new.c. References hsl_value(). |
|
Definition at line 334 of file print-color-new.c. |
|
Definition at line 1320 of file print-color-new.c. References lut_t::image_width. |
|
Definition at line 1340 of file print-color-new.c. References lut_t::image_width. Referenced by setup_cmyk_output(). |
|
Definition at line 2407 of file print-color-new.c. References stpi_color_traditional_module_data. |
|
Definition at line 2400 of file print-color-new.c. References stpi_color_traditional_module_data. |
|
Definition at line 1590 of file print-color-new.c. References lut_t::brightness, lut_t::contrast, lut_t::input_color_model, lut_t::linear_contrast_adjustment, lut_t::output_color_model, lut_t::print_gamma, lut_t::screen_gamma, lut_t::steps, stp_curve_resample(), and stp_curve_set_data(). |
|
Definition at line 1526 of file print-color-new.c. References lut_t::steps, stp_check_float_parameter(), stp_curve_create(), stp_curve_set_bounds(), stp_curve_set_data(), STP_CURVE_WRAP_NONE, stp_get_float_parameter(), and STP_PARAMETER_DEFAULTED. |
|
Definition at line 1729 of file print-color-new.c. References compute_a_curve(), lut_t::input_color_model, invert_curve(), lut_t::output_color_model, lut_t::steps, STP_CURVE_BOUNDS_RESCALE, STP_CURVE_COMPOSE_MULTIPLY, stp_curve_copy(), stp_curve_resample(), and stp_curve_rescale(). |
|
Definition at line 1460 of file print-color-new.c. References allocate_lut(), lut_t::cmy_tmp, lut_t::colorfunc, lut_t::composite, lut_t::cyan, lut_t::gcr_curve, lut_t::hue_map, lut_t::image_bpp, lut_t::image_width, lut_t::in_data, lut_t::input_color_model, lut_t::lum_map, lut_t::magenta, lut_t::output_color_model, lut_t::sat_map, lut_t::steps, stp_curve_create_copy(), and lut_t::yellow. Referenced by stpi_compute_lut(). |
|
Definition at line 1497 of file print-color-new.c. References lut_t::black, lut_t::cmy_tmp, lut_t::cmyk_lut, lut_t::composite, lut_t::cyan, lut_t::gcr_curve, lut_t::hue_map, lut_t::in_data, lut_t::lum_map, lut_t::magenta, lut_t::sat_map, and lut_t::yellow. Referenced by stpi_compute_lut(). |
|
Definition at line 623 of file print-color-new.c. References lut_t::black, FMIN, lut_t::gcr_curve, lut_t::image_width, initialize_gcr_curve(), lut_t::steps, stp_curve_get_ushort_data(), and stp_curve_resample(). |
|
Definition at line 410 of file print-color-new.c. |
|
Definition at line 1400 of file print-color-new.c. References lut_t::channels_are_initialized, lut_t::out_channels, stp_check_float_parameter(), stp_get_float_parameter(), and STP_PARAMETER_ACTIVE. |
|
Definition at line 1747 of file print-color-new.c. References lut_t::cmyk_lut, and stp_get_float_parameter(). Referenced by setup_cmyk_output(). |
|
Definition at line 1810 of file print-color-new.c. References lut_t::black, compute_one_lut(), lut_t::cyan, lut_t::hue_map, lut_t::lum_map, lut_t::magenta, lut_t::sat_map, stp_check_curve_parameter(), stp_check_float_parameter(), STP_CURVE_BOUNDS_RESCALE, STP_CURVE_COMPOSE_MULTIPLY, stp_curve_copy(), stp_curve_create_copy(), stp_curve_resample(), stp_curve_rescale(), stp_get_curve_parameter(), stp_get_curve_parameter_active(), stp_get_float_parameter(), stp_get_float_parameter_active(), STP_PARAMETER_DEFAULTED, and lut_t::yellow. Referenced by setup_cmyk_output(), and setup_color_output(). |
|
Definition at line 1791 of file print-color-new.c. References lut_t::composite, compute_one_lut(), stp_get_curve_parameter(), stp_get_curve_parameter_active(), and stp_get_float_parameter_active(). Referenced by setup_gray_output(). |
|
Definition at line 1763 of file print-color-new.c. References compute_gcr_curve(), lut_t::gcr_curve, lut_t::steps, stp_check_curve_parameter(), stp_curve_count_points(), stp_curve_create_copy(), stp_curve_get_point(), stp_curve_resample(), stp_curve_set_bounds(), stp_get_curve_parameter(), and STP_PARAMETER_DEFAULTED. |
|
Definition at line 1805 of file print-color-new.c. Referenced by setup_cmyk_output(), setup_color_output(), setup_gray_output(), and stpi_color_traditional_init(). |
|
Definition at line 2206 of file print-color-new.c. References curve_parameter_count, stp_parameter_t::deflt, curve_param_t::defval, curve_param_t::param, and standard_curves_initialized. Referenced by stpi_color_traditional_describe_parameter(), and stpi_color_traditional_list_parameters(). |
|
Definition at line 1698 of file print-color-new.c. References STP_CURVE_BOUNDS_RESCALE, STP_CURVE_COMPOSE_ADD, STP_CURVE_COMPOSE_MULTIPLY, stp_curve_get_bounds(), stp_curve_get_data(), stp_curve_get_gamma(), stp_curve_rescale(), stp_curve_set_data(), and stp_curve_set_gamma(). |
|
Definition at line 604 of file print-color-new.c. References lut_t::steps. |
|
Definition at line 1369 of file print-color-new.c. References lut_t::image_bpp, lut_t::image_width, and STP_CHANNEL_LIMIT. Referenced by stpi_color_traditional_init(). |
|
Definition at line 1924 of file print-color-new.c. References cmyk_16_to_kcmy_raw(), initialize_cmyk_lut(), initialize_color_curves(), initialize_nothing(), and SET_COLORFUNC. Referenced by stpi_color_traditional_init(). |
|
Definition at line 2017 of file print-color-new.c. References initialize_color_curves(), initialize_nothing(), and SET_COLORFUNC. Referenced by stpi_color_traditional_init(). |
|
Definition at line 2084 of file print-color-new.c. References initialize_composite_curve(), initialize_nothing(), and SET_COLORFUNC. Referenced by stpi_color_traditional_init(). |
|
|
Definition at line 1410 of file print-color-new.c. References lut_t::channels_are_initialized, lut_t::colorfunc, lut_t::image_bpp, lut_t::image_width, lut_t::in_data, initialize_channels(), and STP_IMAGE_STATUS_OK. |
|
Definition at line 2140 of file print-color-new.c. References lut_t::image_bpp, lut_t::image_width, lut_t::in_data, initialize_nothing(), lut_t::out_channels, lut_t::output_type, raw_to_raw(), SET_COLORFUNC, setup_cmyk_output(), setup_color_output(), setup_gray_output(), stp_get_string_parameter(), and stpi_compute_lut(). |
|
Definition at line 2263 of file print-color-new.c. References curve_parameter_count, float_parameter_count, initialize_standard_curves(), stp_parameter_list_add_param(), and stp_parameter_list_create(). |
|
|
Definition at line 458 of file print-color-new.c. References FMIN. |
|
Definition at line 474 of file print-color-new.c. References calc_hsl_to_rgb(), calc_rgb_to_hsl(), and update_saturation(). |
|
Definition at line 234 of file print-color-new.c. |
|
Initial value: sizeof(curve_parameters) / sizeof(curve_param_t) Definition at line 313 of file print-color-new.c. Referenced by initialize_standard_curves(), stpi_color_traditional_describe_parameter(), and stpi_color_traditional_list_parameters(). |
|
Definition at line 237 of file print-color-new.c. |
|
Initial value: sizeof(float_parameters) / sizeof(float_param_t) Definition at line 218 of file print-color-new.c. Referenced by stpi_color_traditional_describe_parameter(), and stpi_color_traditional_list_parameters(). |
|
Definition at line 95 of file print-color-new.c. |
|
Definition at line 235 of file print-color-new.c. |
|
Definition at line 231 of file print-color-new.c. |
|
Definition at line 232 of file print-color-new.c. |
|
Definition at line 233 of file print-color-new.c. |
|
Definition at line 229 of file print-color-new.c. Referenced by initialize_standard_curves(). |
|
Initial value: { &stpi_color_traditional_init, &stpi_color_traditional_get_row, &stpi_color_traditional_list_parameters, &stpi_color_traditional_describe_parameter } Definition at line 2382 of file print-color-new.c. |
|
Initial value: { COOKIE_COLOR, "traditional", N_("Traditional Gimp-Print color conversion"), &stpi_color_traditional_colorfuncs } Definition at line 2390 of file print-color-new.c. Referenced by color_traditional_module_exit(), and color_traditional_module_init(). |
|
Initial value: { "traditional", VERSION, "Traditional Gimp-Print color conversion", STPI_MODULE_CLASS_COLOR, NULL, color_traditional_module_init, color_traditional_module_exit, (void *) &stpi_color_traditional_module_data } Definition at line 2419 of file print-color-new.c. |
|
Definition at line 2417 of file print-color-new.c. |