summaryrefslogtreecommitdiff
path: root/driver/testrgb.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/testrgb.c')
-rw-r--r--driver/testrgb.c347
1 files changed, 0 insertions, 347 deletions
diff --git a/driver/testrgb.c b/driver/testrgb.c
deleted file mode 100644
index f2079d9e..00000000
--- a/driver/testrgb.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * "$Id: testrgb.c 9982 2011-09-09 17:32:52Z mike $"
- *
- * Test the new RGB color separation code for CUPS.
- *
- * Copyright 2007-2011 by Apple Inc.
- * Copyright 1993-2006 by Easy Software Products, All Rights Reserved.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- * main() - Do color rgb tests.
- * test_gray() - Test grayscale rgbs...
- * test_rgb() - Test color rgbs...
- */
-
-/*
- * Include necessary headers.
- */
-
-#include <cups/string-private.h>
-#include "driver.h"
-#include <sys/stat.h>
-
-#ifdef HAVE_LIBLCMS
-# include <lcms/lcms.h>
-#endif /* HAVE_LIBLCMS */
-
-
-void test_gray(cups_sample_t *samples, int num_samples,
- int cube_size, int num_comps, const char *base);
-void test_rgb(cups_sample_t *samples, int num_samples,
- int cube_size, int num_comps, const char *base);
-
-
-/*
- * 'main()' - Do color rgb tests.
- */
-
-int /* O - Exit status */
-main(int argc, /* I - Number of command-line arguments */
- char *argv[]) /* I - Command-line arguments */
-{
- static cups_sample_t CMYK[] = /* Basic 4-color sep */
- {
- /*{ r, g, b }, { C, M, Y, K }*/
- { { 0, 0, 0 }, { 0, 0, 0, 255 } },
- { { 255, 0, 0 }, { 0, 255, 240, 0 } },
- { { 0, 255, 0 }, { 200, 0, 200, 0 } },
- { { 255, 255, 0 }, { 0, 0, 240, 0 } },
- { { 0, 0, 255 }, { 200, 200, 0, 0 } },
- { { 255, 0, 255 }, { 0, 200, 0, 0 } },
- { { 0, 255, 255 }, { 200, 0, 0, 0 } },
- { { 255, 255, 255 }, { 0, 0, 0, 0 } }
- };
-
-
- /*
- * Make the test directory...
- */
-
- mkdir("test", 0755);
-
- /*
- * Run tests for CMYK and CMYK separations...
- */
-
- test_rgb(CMYK, 8, 2, 4, "test/rgb-cmyk");
-
- test_gray(CMYK, 8, 2, 4, "test/gray-cmyk");
-
- /*
- * Return with no errors...
- */
-
- return (0);
-}
-
-
-/*
- * 'test_gray()' - Test grayscale rgbs...
- */
-
-void
-test_gray(cups_sample_t *samples, /* I - Sample values */
- int num_samples, /* I - Number of samples */
- int cube_size, /* I - Cube size */
- int num_comps, /* I - Number of components */
- const char *base) /* I - Base filename of output */
-{
- int i; /* Looping var */
- char filename[255]; /* Output filename */
- char line[255]; /* Line from PPM file */
- int width, height; /* Width and height of test image */
- int x, y; /* Current coordinate in image */
- int r, g, b; /* Current RGB color */
- unsigned char input[7000]; /* Line to rgbarate */
- unsigned char output[48000], /* Output rgb data */
- *outptr; /* Pointer in output */
- FILE *in; /* Input PPM file */
- FILE *out[CUPS_MAX_CHAN];
- /* Output PGM files */
- FILE *comp; /* Composite output */
- cups_rgb_t *rgb; /* Color separation */
-
-
- /*
- * Open the test image...
- */
-
- in = fopen("image.pgm", "rb");
- while (fgets(line, sizeof(line), in) != NULL)
- if (isdigit(line[0]))
- break;
-
- sscanf(line, "%d%d", &width, &height);
-
- fgets(line, sizeof(line), in);
-
- /*
- * Create the color rgb...
- */
-
- rgb = cupsRGBNew(num_samples, samples, cube_size, num_comps);
-
- /*
- * Open the color rgb files...
- */
-
- for (i = 0; i < num_comps; i ++)
- {
- sprintf(filename, "%s%d.pgm", base, i);
- out[i] = fopen(filename, "wb");
-
- fprintf(out[i], "P5\n%d %d 255\n", width, height);
- }
-
- sprintf(filename, "%s.ppm", base);
- comp = fopen(filename, "wb");
-
- fprintf(comp, "P6\n%d %d 255\n", width, height);
-
- /*
- * Read the image and do the rgbs...
- */
-
- for (y = 0; y < height; y ++)
- {
- fread(input, width, 1, in);
-
- cupsRGBDoGray(rgb, input, output, width);
-
- for (x = 0, outptr = output; x < width; x ++, outptr += num_comps)
- {
- for (i = 0; i < num_comps; i ++)
- putc(255 - outptr[i], out[i]);
-
- r = 255;
- g = 255;
- b = 255;
-
- r -= outptr[0];
- g -= outptr[1];
- b -= outptr[2];
-
- r -= outptr[3];
- g -= outptr[3];
- b -= outptr[3];
-
- if (num_comps > 4)
- {
- r -= outptr[4] / 2;
- g -= outptr[5] / 2;
- }
-
- if (num_comps > 6)
- {
- r -= outptr[6] / 2;
- g -= outptr[6] / 2;
- b -= outptr[6] / 2;
- }
-
- if (r < 0)
- putc(0, comp);
- else
- putc(r, comp);
-
- if (g < 0)
- putc(0, comp);
- else
- putc(g, comp);
-
- if (b < 0)
- putc(0, comp);
- else
- putc(b, comp);
- }
- }
-
- for (i = 0; i < num_comps; i ++)
- fclose(out[i]);
-
- fclose(comp);
- fclose(in);
-
- cupsRGBDelete(rgb);
-}
-
-
-/*
- * 'test_rgb()' - Test color rgbs...
- */
-
-void
-test_rgb(cups_sample_t *samples, /* I - Sample values */
- int num_samples, /* I - Number of samples */
- int cube_size, /* I - Cube size */
- int num_comps, /* I - Number of components */
- const char *base) /* I - Base filename of output */
-{
- int i; /* Looping var */
- char filename[255]; /* Output filename */
- char line[255]; /* Line from PPM file */
- int width, height; /* Width and height of test image */
- int x, y; /* Current coordinate in image */
- int r, g, b; /* Current RGB color */
- unsigned char input[7000]; /* Line to rgbarate */
- unsigned char output[48000], /* Output rgb data */
- *outptr; /* Pointer in output */
- FILE *in; /* Input PPM file */
- FILE *out[CUPS_MAX_CHAN];
- /* Output PGM files */
- FILE *comp; /* Composite output */
- cups_rgb_t *rgb; /* Color separation */
-
-
- /*
- * Open the test image...
- */
-
- in = fopen("image.ppm", "rb");
- while (fgets(line, sizeof(line), in) != NULL)
- if (isdigit(line[0]))
- break;
-
- sscanf(line, "%d%d", &width, &height);
-
- fgets(line, sizeof(line), in);
-
- /*
- * Create the color rgb...
- */
-
- rgb = cupsRGBNew(num_samples, samples, cube_size, num_comps);
-
- /*
- * Open the color rgb files...
- */
-
- for (i = 0; i < num_comps; i ++)
- {
- sprintf(filename, "%s%d.pgm", base, i);
- out[i] = fopen(filename, "wb");
-
- fprintf(out[i], "P5\n%d %d 255\n", width, height);
- }
-
- sprintf(filename, "%s.ppm", base);
- comp = fopen(filename, "wb");
-
- fprintf(comp, "P6\n%d %d 255\n", width, height);
-
- /*
- * Read the image and do the rgbs...
- */
-
- for (y = 0; y < height; y ++)
- {
- fread(input, width, 3, in);
-
- cupsRGBDoRGB(rgb, input, output, width);
-
- for (x = 0, outptr = output; x < width; x ++, outptr += num_comps)
- {
- for (i = 0; i < num_comps; i ++)
- putc(255 - outptr[i], out[i]);
-
- r = 255;
- g = 255;
- b = 255;
-
- r -= outptr[0];
- g -= outptr[1];
- b -= outptr[2];
-
- r -= outptr[3];
- g -= outptr[3];
- b -= outptr[3];
-
- if (num_comps > 4)
- {
- r -= outptr[4] / 2;
- g -= outptr[5] / 2;
- }
-
- if (num_comps > 6)
- {
- r -= outptr[6] / 2;
- g -= outptr[6] / 2;
- b -= outptr[6] / 2;
- }
-
- if (r < 0)
- putc(0, comp);
- else
- putc(r, comp);
-
- if (g < 0)
- putc(0, comp);
- else
- putc(g, comp);
-
- if (b < 0)
- putc(0, comp);
- else
- putc(b, comp);
- }
- }
-
- for (i = 0; i < num_comps; i ++)
- fclose(out[i]);
-
- fclose(comp);
- fclose(in);
-
- cupsRGBDelete(rgb);
-}
-
-
-/*
- * End of "$Id: testrgb.c 9982 2011-09-09 17:32:52Z mike $".
- */