mirror of https://github.com/GNOME/gimp.git
parent
ba3f196538
commit
e192fcfe43
|
@ -1,3 +1,8 @@
|
||||||
|
Sat Oct 16 05:48:44 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
|
* plug-ins/common/compose.c
|
||||||
|
* plug-ins/common/decompose.c: use gimp_message where appropriate
|
||||||
|
|
||||||
Thu Oct 14 13:31:59 MEST 1999 Sven Neumann <sven@gimp.org>
|
Thu Oct 14 13:31:59 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||||
|
|
||||||
* plug-ins/common/sunras.c
|
* plug-ins/common/sunras.c
|
||||||
|
|
|
@ -256,7 +256,7 @@ static void show_message (const char *message)
|
||||||
|
|
||||||
{
|
{
|
||||||
if (run_mode == RUN_INTERACTIVE)
|
if (run_mode == RUN_INTERACTIVE)
|
||||||
g_message (message);
|
gimp_message (message);
|
||||||
else
|
else
|
||||||
printf ("%s\n", message);
|
printf ("%s\n", message);
|
||||||
}
|
}
|
||||||
|
@ -383,8 +383,8 @@ static gint32
|
||||||
compose (char *compose_type,
|
compose (char *compose_type,
|
||||||
gint32 *compose_ID,
|
gint32 *compose_ID,
|
||||||
int compose_by_drawable)
|
int compose_by_drawable)
|
||||||
|
{
|
||||||
{int width, height, tile_height, scan_lines;
|
int width, height, tile_height, scan_lines;
|
||||||
int num_images, compose_idx, incr_src[MAX_COMPOSE_IMAGES];
|
int num_images, compose_idx, incr_src[MAX_COMPOSE_IMAGES];
|
||||||
int i, j;
|
int i, j;
|
||||||
gint num_layers;
|
gint num_layers;
|
||||||
|
@ -494,7 +494,8 @@ compose (char *compose_type,
|
||||||
dst = (unsigned char *)g_malloc (tile_height * width * drawable_dst->bpp);
|
dst = (unsigned char *)g_malloc (tile_height * width * drawable_dst->bpp);
|
||||||
if (dst == NULL)
|
if (dst == NULL)
|
||||||
{
|
{
|
||||||
for (j = 0; j < num_images; j++) g_free (src[j]);
|
for (j = 0; j < num_images; j++)
|
||||||
|
g_free (src[j]);
|
||||||
show_message (_("compose: not enough memory"));
|
show_message (_("compose: not enough memory"));
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
@ -545,8 +546,8 @@ create_new_image (char *filename,
|
||||||
gint32 *layer_ID,
|
gint32 *layer_ID,
|
||||||
GDrawable **drawable,
|
GDrawable **drawable,
|
||||||
GPixelRgn *pixel_rgn)
|
GPixelRgn *pixel_rgn)
|
||||||
|
{
|
||||||
{gint32 image_ID;
|
gint32 image_ID;
|
||||||
GImageType gitype;
|
GImageType gitype;
|
||||||
|
|
||||||
if ((gdtype == GRAY_IMAGE) || (gdtype == GRAYA_IMAGE))
|
if ((gdtype == GRAY_IMAGE) || (gdtype == GRAYA_IMAGE))
|
||||||
|
@ -573,9 +574,11 @@ create_new_image (char *filename,
|
||||||
|
|
||||||
/* Compare two strings ignoring case (could also be done by strcasecmp() */
|
/* Compare two strings ignoring case (could also be done by strcasecmp() */
|
||||||
/* but is it available everywhere ?) */
|
/* but is it available everywhere ?) */
|
||||||
static int cmp_icase (char *s1, char *s2)
|
static int
|
||||||
|
cmp_icase (char *s1,
|
||||||
{int c1, c2;
|
char *s2)
|
||||||
|
{
|
||||||
|
int c1, c2;
|
||||||
|
|
||||||
c1 = toupper (*s1); c2 = toupper (*s2);
|
c1 = toupper (*s1); c2 = toupper (*s2);
|
||||||
while (*s1 && *s2)
|
while (*s1 && *s2)
|
||||||
|
@ -592,8 +595,8 @@ compose_rgb (unsigned char **src,
|
||||||
int *incr_src,
|
int *incr_src,
|
||||||
int numpix,
|
int numpix,
|
||||||
unsigned char *dst)
|
unsigned char *dst)
|
||||||
|
{
|
||||||
{register unsigned char *red_src = src[0];
|
register unsigned char *red_src = src[0];
|
||||||
register unsigned char *green_src = src[1];
|
register unsigned char *green_src = src[1];
|
||||||
register unsigned char *blue_src = src[2];
|
register unsigned char *blue_src = src[2];
|
||||||
register unsigned char *rgb_dst = dst;
|
register unsigned char *rgb_dst = dst;
|
||||||
|
@ -626,8 +629,8 @@ compose_rgba (unsigned char **src,
|
||||||
int *incr_src,
|
int *incr_src,
|
||||||
int numpix,
|
int numpix,
|
||||||
unsigned char *dst)
|
unsigned char *dst)
|
||||||
|
{
|
||||||
{register unsigned char *red_src = src[0];
|
register unsigned char *red_src = src[0];
|
||||||
register unsigned char *green_src = src[1];
|
register unsigned char *green_src = src[1];
|
||||||
register unsigned char *blue_src = src[2];
|
register unsigned char *blue_src = src[2];
|
||||||
register unsigned char *alpha_src = src[3];
|
register unsigned char *alpha_src = src[3];
|
||||||
|
@ -665,8 +668,8 @@ compose_hsv (unsigned char **src,
|
||||||
int *incr_src,
|
int *incr_src,
|
||||||
int numpix,
|
int numpix,
|
||||||
unsigned char *dst)
|
unsigned char *dst)
|
||||||
|
{
|
||||||
{register unsigned char *hue_src = src[0];
|
register unsigned char *hue_src = src[0];
|
||||||
register unsigned char *sat_src = src[1];
|
register unsigned char *sat_src = src[1];
|
||||||
register unsigned char *val_src = src[2];
|
register unsigned char *val_src = src[2];
|
||||||
register unsigned char *rgb_dst = dst;
|
register unsigned char *rgb_dst = dst;
|
||||||
|
@ -689,8 +692,8 @@ compose_cmy (unsigned char **src,
|
||||||
int *incr_src,
|
int *incr_src,
|
||||||
int numpix,
|
int numpix,
|
||||||
unsigned char *dst)
|
unsigned char *dst)
|
||||||
|
{
|
||||||
{register unsigned char *cyan_src = src[0];
|
register unsigned char *cyan_src = src[0];
|
||||||
register unsigned char *magenta_src = src[1];
|
register unsigned char *magenta_src = src[1];
|
||||||
register unsigned char *yellow_src = src[2];
|
register unsigned char *yellow_src = src[2];
|
||||||
register unsigned char *rgb_dst = dst;
|
register unsigned char *rgb_dst = dst;
|
||||||
|
@ -727,8 +730,8 @@ compose_cmyk (unsigned char **src,
|
||||||
int *incr_src,
|
int *incr_src,
|
||||||
int numpix,
|
int numpix,
|
||||||
unsigned char *dst)
|
unsigned char *dst)
|
||||||
|
{
|
||||||
{register unsigned char *cyan_src = src[0];
|
register unsigned char *cyan_src = src[0];
|
||||||
register unsigned char *magenta_src = src[1];
|
register unsigned char *magenta_src = src[1];
|
||||||
register unsigned char *yellow_src = src[2];
|
register unsigned char *yellow_src = src[2];
|
||||||
register unsigned char *black_src = src[3];
|
register unsigned char *black_src = src[3];
|
||||||
|
@ -935,8 +938,8 @@ hsv_to_rgb (unsigned char *h,
|
||||||
unsigned char *s,
|
unsigned char *s,
|
||||||
unsigned char *v,
|
unsigned char *v,
|
||||||
unsigned char *rgb)
|
unsigned char *rgb)
|
||||||
|
{
|
||||||
{double hue, sat, val;
|
double hue, sat, val;
|
||||||
double f, p, q, t;
|
double f, p, q, t;
|
||||||
int red, green, blue;
|
int red, green, blue;
|
||||||
|
|
||||||
|
@ -993,9 +996,20 @@ hsv_to_rgb (unsigned char *h,
|
||||||
blue = 0;
|
blue = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (red < 0) red = 0; else if (red > 255) red = 255;
|
|
||||||
if (green < 0) green = 0; else if (green > 255) green = 255;
|
if (red < 0)
|
||||||
if (blue < 0) blue = 0; else if (blue > 255) blue = 255;
|
red = 0;
|
||||||
|
else if (red > 255)
|
||||||
|
red = 255;
|
||||||
|
if (green < 0)
|
||||||
|
green = 0;
|
||||||
|
else if (green > 255)
|
||||||
|
green = 255;
|
||||||
|
if (blue < 0)
|
||||||
|
blue = 0;
|
||||||
|
else if (blue > 255)
|
||||||
|
blue = 255;
|
||||||
|
|
||||||
rgb[0] = (unsigned char)red;
|
rgb[0] = (unsigned char)red;
|
||||||
rgb[1] = (unsigned char)green;
|
rgb[1] = (unsigned char)green;
|
||||||
rgb[2] = (unsigned char)blue;
|
rgb[2] = (unsigned char)blue;
|
||||||
|
@ -1081,3 +1095,11 @@ compose_type_toggle_update (GtkWidget *widget,
|
||||||
else
|
else
|
||||||
*toggle_val = FALSE;
|
*toggle_val = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -229,7 +229,7 @@ query ()
|
||||||
static void show_message (const char *message)
|
static void show_message (const char *message)
|
||||||
{
|
{
|
||||||
if (run_mode == RUN_INTERACTIVE)
|
if (run_mode == RUN_INTERACTIVE)
|
||||||
g_message (message);
|
gimp_message (message);
|
||||||
else
|
else
|
||||||
printf ("%s\n", message);
|
printf ("%s\n", message);
|
||||||
}
|
}
|
||||||
|
@ -345,7 +345,6 @@ decompose (gint32 image_ID,
|
||||||
gint32 drawable_ID,
|
gint32 drawable_ID,
|
||||||
char *extract_type,
|
char *extract_type,
|
||||||
gint32 *image_ID_dst)
|
gint32 *image_ID_dst)
|
||||||
|
|
||||||
{
|
{
|
||||||
int i, j, extract_idx, scan_lines;
|
int i, j, extract_idx, scan_lines;
|
||||||
int height, width, tile_height, num_images;
|
int height, width, tile_height, num_images;
|
||||||
|
@ -374,8 +373,8 @@ decompose (gint32 image_ID,
|
||||||
show_message (_("decompose: not an RGB image"));
|
show_message (_("decompose: not an RGB image"));
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
if ( (extract[extract_idx].extract_fun == extract_alpha)
|
if ((extract[extract_idx].extract_fun == extract_alpha) &&
|
||||||
&& (!gimp_drawable_has_alpha (drawable_ID)))
|
(!gimp_drawable_has_alpha (drawable_ID)))
|
||||||
{
|
{
|
||||||
show_message (_("decompose: No alpha channel available"));
|
show_message (_("decompose: No alpha channel available"));
|
||||||
return (-1);
|
return (-1);
|
||||||
|
@ -393,7 +392,8 @@ decompose (gint32 image_ID,
|
||||||
|
|
||||||
/* Create all new gray images */
|
/* Create all new gray images */
|
||||||
num_images = extract[extract_idx].num_images;
|
num_images = extract[extract_idx].num_images;
|
||||||
if (num_images > MAX_EXTRACT_IMAGES) num_images = MAX_EXTRACT_IMAGES;
|
if (num_images > MAX_EXTRACT_IMAGES)
|
||||||
|
num_images = MAX_EXTRACT_IMAGES;
|
||||||
|
|
||||||
for (j = 0; j < num_images; j++)
|
for (j = 0; j < num_images; j++)
|
||||||
{
|
{
|
||||||
|
@ -458,13 +458,16 @@ create_new_image (char *filename,
|
||||||
gint32 *layer_ID,
|
gint32 *layer_ID,
|
||||||
GDrawable **drawable,
|
GDrawable **drawable,
|
||||||
GPixelRgn *pixel_rgn)
|
GPixelRgn *pixel_rgn)
|
||||||
|
{
|
||||||
{gint32 image_ID;
|
gint32 image_ID;
|
||||||
GDrawableType gdtype;
|
GDrawableType gdtype;
|
||||||
|
|
||||||
if (type == GRAY) gdtype = GRAY_IMAGE;
|
if (type == GRAY)
|
||||||
else if (type == INDEXED) gdtype = INDEXED_IMAGE;
|
gdtype = GRAY_IMAGE;
|
||||||
else gdtype = RGB_IMAGE;
|
else if (type == INDEXED)
|
||||||
|
gdtype = INDEXED_IMAGE;
|
||||||
|
else
|
||||||
|
gdtype = RGB_IMAGE;
|
||||||
|
|
||||||
image_ID = gimp_image_new (width, height, type);
|
image_ID = gimp_image_new (width, height, type);
|
||||||
gimp_image_set_filename (image_ID, filename);
|
gimp_image_set_filename (image_ID, filename);
|
||||||
|
@ -483,14 +486,17 @@ create_new_image (char *filename,
|
||||||
|
|
||||||
/* Compare two strings ignoring case (could also be done by strcasecmp() */
|
/* Compare two strings ignoring case (could also be done by strcasecmp() */
|
||||||
/* but is it available everywhere ?) */
|
/* but is it available everywhere ?) */
|
||||||
static int cmp_icase (char *s1, char *s2)
|
static int
|
||||||
|
cmp_icase (char *s1,
|
||||||
{int c1, c2;
|
char *s2)
|
||||||
|
{
|
||||||
|
int c1, c2;
|
||||||
|
|
||||||
c1 = toupper (*s1); c2 = toupper (*s2);
|
c1 = toupper (*s1); c2 = toupper (*s2);
|
||||||
while (*s1 && *s2)
|
while (*s1 && *s2)
|
||||||
{
|
{
|
||||||
if (c1 != c2) return (c2 - c1);
|
if (c1 != c2)
|
||||||
|
return (c2 - c1);
|
||||||
c1 = toupper (*(++s1)); c2 = toupper (*(++s2));
|
c1 = toupper (*(++s1)); c2 = toupper (*(++s2));
|
||||||
}
|
}
|
||||||
return (c2 - c1);
|
return (c2 - c1);
|
||||||
|
@ -500,8 +506,13 @@ static int cmp_icase (char *s1, char *s2)
|
||||||
/* Convert RGB to HSV. This routine was taken from decompose plug-in
|
/* Convert RGB to HSV. This routine was taken from decompose plug-in
|
||||||
of GIMP V 0.54 and modified a little bit.
|
of GIMP V 0.54 and modified a little bit.
|
||||||
*/
|
*/
|
||||||
static void rgb_to_hsv (unsigned char *r, unsigned char *g, unsigned char *b,
|
static void
|
||||||
unsigned char *h, unsigned char *s, unsigned char *v)
|
rgb_to_hsv (unsigned char *r,
|
||||||
|
unsigned char *g,
|
||||||
|
unsigned char *b,
|
||||||
|
unsigned char *h,
|
||||||
|
unsigned char *s,
|
||||||
|
unsigned char *v)
|
||||||
|
|
||||||
{
|
{
|
||||||
int red = (int)*r, green = (int)*g, blue = (int)*b;
|
int red = (int)*r, green = (int)*g, blue = (int)*b;
|
||||||
|
@ -569,10 +580,13 @@ static void rgb_to_hsv (unsigned char *r, unsigned char *g, unsigned char *b,
|
||||||
|
|
||||||
/* Extract functions */
|
/* Extract functions */
|
||||||
|
|
||||||
static void extract_rgb (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_rgb (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *red_dst = dst[0];
|
register unsigned char *red_dst = dst[0];
|
||||||
register unsigned char *green_dst = dst[1];
|
register unsigned char *green_dst = dst[1];
|
||||||
register unsigned char *blue_dst = dst[2];
|
register unsigned char *blue_dst = dst[2];
|
||||||
|
@ -588,10 +602,13 @@ static void extract_rgb (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_red (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_red (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *red_dst = dst[0];
|
register unsigned char *red_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp;
|
register int count = numpix, offset = bpp;
|
||||||
|
|
||||||
|
@ -603,10 +620,13 @@ static void extract_red (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_green (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_green (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src+1;
|
register unsigned char *rgb_src = src+1;
|
||||||
register unsigned char *green_dst = dst[0];
|
register unsigned char *green_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp;
|
register int count = numpix, offset = bpp;
|
||||||
|
|
||||||
|
@ -618,10 +638,13 @@ static void extract_green (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_blue (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_blue (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src+2;
|
register unsigned char *rgb_src = src+2;
|
||||||
register unsigned char *blue_dst = dst[0];
|
register unsigned char *blue_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp;
|
register int count = numpix, offset = bpp;
|
||||||
|
|
||||||
|
@ -633,10 +656,13 @@ static void extract_blue (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_alpha (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_alpha (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src+3;
|
register unsigned char *rgb_src = src+3;
|
||||||
register unsigned char *alpha_dst = dst[0];
|
register unsigned char *alpha_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp;
|
register int count = numpix, offset = bpp;
|
||||||
|
|
||||||
|
@ -648,10 +674,13 @@ static void extract_alpha (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_cmy (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_cmy (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *cyan_dst = dst[0];
|
register unsigned char *cyan_dst = dst[0];
|
||||||
register unsigned char *magenta_dst = dst[1];
|
register unsigned char *magenta_dst = dst[1];
|
||||||
register unsigned char *yellow_dst = dst[2];
|
register unsigned char *yellow_dst = dst[2];
|
||||||
|
@ -667,10 +696,13 @@ static void extract_cmy (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_hsv (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_hsv (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *hue_dst = dst[0];
|
register unsigned char *hue_dst = dst[0];
|
||||||
register unsigned char *sat_dst = dst[1];
|
register unsigned char *sat_dst = dst[1];
|
||||||
register unsigned char *val_dst = dst[2];
|
register unsigned char *val_dst = dst[2];
|
||||||
|
@ -684,10 +716,13 @@ static void extract_hsv (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_hue (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_hue (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *hue_dst = dst[0];
|
register unsigned char *hue_dst = dst[0];
|
||||||
unsigned char dmy;
|
unsigned char dmy;
|
||||||
unsigned char *dummy = &dmy;
|
unsigned char *dummy = &dmy;
|
||||||
|
@ -701,10 +736,13 @@ static void extract_hue (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_sat (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_sat (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *sat_dst = dst[0];
|
register unsigned char *sat_dst = dst[0];
|
||||||
unsigned char dmy;
|
unsigned char dmy;
|
||||||
unsigned char *dummy = &dmy;
|
unsigned char *dummy = &dmy;
|
||||||
|
@ -718,10 +756,13 @@ static void extract_sat (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_val (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_val (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *val_dst = dst[0];
|
register unsigned char *val_dst = dst[0];
|
||||||
unsigned char dmy;
|
unsigned char dmy;
|
||||||
unsigned char *dummy = &dmy;
|
unsigned char *dummy = &dmy;
|
||||||
|
@ -735,10 +776,13 @@ static void extract_val (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_cyan (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_cyan (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *cyan_dst = dst[0];
|
register unsigned char *cyan_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp-1;
|
register int count = numpix, offset = bpp-1;
|
||||||
|
|
||||||
|
@ -750,10 +794,13 @@ static void extract_cyan (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_magenta (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_magenta (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src+1;
|
register unsigned char *rgb_src = src+1;
|
||||||
register unsigned char *magenta_dst = dst[0];
|
register unsigned char *magenta_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp-1;
|
register int count = numpix, offset = bpp-1;
|
||||||
|
|
||||||
|
@ -765,10 +812,13 @@ static void extract_magenta (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_yellow (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_yellow (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src+2;
|
register unsigned char *rgb_src = src+2;
|
||||||
register unsigned char *yellow_dst = dst[0];
|
register unsigned char *yellow_dst = dst[0];
|
||||||
register int count = numpix, offset = bpp-1;
|
register int count = numpix, offset = bpp-1;
|
||||||
|
|
||||||
|
@ -780,10 +830,14 @@ static void extract_yellow (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_cmyk (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_cmyk (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
|
||||||
{register unsigned char *rgb_src = src;
|
{
|
||||||
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *cyan_dst = dst[0];
|
register unsigned char *cyan_dst = dst[0];
|
||||||
register unsigned char *magenta_dst = dst[1];
|
register unsigned char *magenta_dst = dst[1];
|
||||||
register unsigned char *yellow_dst = dst[2];
|
register unsigned char *yellow_dst = dst[2];
|
||||||
|
@ -795,9 +849,11 @@ static void extract_cmyk (unsigned char *src, int bpp, int numpix,
|
||||||
{
|
{
|
||||||
*cyan_dst = k = 255 - *(rgb_src++);
|
*cyan_dst = k = 255 - *(rgb_src++);
|
||||||
*magenta_dst = s = 255 - *(rgb_src++);
|
*magenta_dst = s = 255 - *(rgb_src++);
|
||||||
if (s < k) k = s;
|
if (s < k)
|
||||||
|
k = s;
|
||||||
*yellow_dst = s = 255 - *(rgb_src++);
|
*yellow_dst = s = 255 - *(rgb_src++);
|
||||||
if (s < k) k = s; /* Black intensity is minimum of c, m, y */
|
if (s < k)
|
||||||
|
k = s; /* Black intensity is minimum of c, m, y */
|
||||||
if (k)
|
if (k)
|
||||||
{
|
{
|
||||||
*cyan_dst -= k; /* Remove common part of c, m, y */
|
*cyan_dst -= k; /* Remove common part of c, m, y */
|
||||||
|
@ -814,10 +870,13 @@ static void extract_cmyk (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_cyank (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_cyank (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *cyan_dst = dst[0];
|
register unsigned char *cyan_dst = dst[0];
|
||||||
register unsigned char s, k;
|
register unsigned char s, k;
|
||||||
register int count = numpix, offset = bpp-3;
|
register int count = numpix, offset = bpp-3;
|
||||||
|
@ -837,10 +896,13 @@ static void extract_cyank (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_magentak (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_magentak (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
{
|
||||||
{register unsigned char *rgb_src = src;
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *magenta_dst = dst[0];
|
register unsigned char *magenta_dst = dst[0];
|
||||||
register unsigned char s, k;
|
register unsigned char s, k;
|
||||||
register int count = numpix, offset = bpp-3;
|
register int count = numpix, offset = bpp-3;
|
||||||
|
@ -849,10 +911,13 @@ static void extract_magentak (unsigned char *src, int bpp, int numpix,
|
||||||
{
|
{
|
||||||
k = 255 - *(rgb_src++); /* cyan */
|
k = 255 - *(rgb_src++); /* cyan */
|
||||||
*magenta_dst = s = 255 - *(rgb_src++); /* magenta */
|
*magenta_dst = s = 255 - *(rgb_src++); /* magenta */
|
||||||
if (s < k) k = s;
|
if (s < k)
|
||||||
|
k = s;
|
||||||
s = 255 - *(rgb_src++); /* yellow */
|
s = 255 - *(rgb_src++); /* yellow */
|
||||||
if (s < k) k = s;
|
if (s < k)
|
||||||
if (k) *magenta_dst -= k;
|
k = s;
|
||||||
|
if (k)
|
||||||
|
*magenta_dst -= k;
|
||||||
magenta_dst++;
|
magenta_dst++;
|
||||||
|
|
||||||
rgb_src += offset;
|
rgb_src += offset;
|
||||||
|
@ -860,10 +925,14 @@ static void extract_magentak (unsigned char *src, int bpp, int numpix,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void extract_yellowk (unsigned char *src, int bpp, int numpix,
|
static void
|
||||||
|
extract_yellowk (unsigned char *src,
|
||||||
|
int bpp,
|
||||||
|
int numpix,
|
||||||
unsigned char **dst)
|
unsigned char **dst)
|
||||||
|
|
||||||
{register unsigned char *rgb_src = src;
|
{
|
||||||
|
register unsigned char *rgb_src = src;
|
||||||
register unsigned char *yellow_dst = dst[0];
|
register unsigned char *yellow_dst = dst[0];
|
||||||
register unsigned char s, k;
|
register unsigned char s, k;
|
||||||
register int count = numpix, offset = bpp-3;
|
register int count = numpix, offset = bpp-3;
|
||||||
|
@ -874,8 +943,10 @@ static void extract_yellowk (unsigned char *src, int bpp, int numpix,
|
||||||
s = 255 - *(rgb_src++); /* magenta */
|
s = 255 - *(rgb_src++); /* magenta */
|
||||||
if (s < k) k = s;
|
if (s < k) k = s;
|
||||||
*yellow_dst = s = 255 - *(rgb_src++);
|
*yellow_dst = s = 255 - *(rgb_src++);
|
||||||
if (s < k) k = s;
|
if (s < k)
|
||||||
if (k) *yellow_dst -= k;
|
k = s;
|
||||||
|
if (k)
|
||||||
|
*yellow_dst -= k;
|
||||||
yellow_dst++;
|
yellow_dst++;
|
||||||
|
|
||||||
rgb_src += offset;
|
rgb_src += offset;
|
||||||
|
|
Loading…
Reference in New Issue