summaryrefslogtreecommitdiff
path: root/filter/image-sgi.c
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2012-10-25 21:07:57 +0200
committerDidier Raboud <odyx@debian.org>2012-10-25 21:07:57 +0200
commit81ab83f382660bc7980ae954725c4ebf28764b03 (patch)
tree523268f698a63a8fd44f3491d94d140266b2403b /filter/image-sgi.c
parenta75966e33dbc3e3e096338fd332f515cb313b58a (diff)
downloadcups-upstream/1.6.0.tar.gz
Imported Upstream version 1.6.0upstream/1.6.0
Diffstat (limited to 'filter/image-sgi.c')
-rw-r--r--filter/image-sgi.c295
1 files changed, 0 insertions, 295 deletions
diff --git a/filter/image-sgi.c b/filter/image-sgi.c
deleted file mode 100644
index b9e7fa5c..00000000
--- a/filter/image-sgi.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * "$Id: image-sgi.c 9771 2011-05-12 05:21:56Z mike $"
- *
- * SGI image file routines for CUPS.
- *
- * Copyright 2007-2011 by Apple Inc.
- * Copyright 1993-2007 by Easy Software Products.
- *
- * 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/".
- *
- * This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- * _cupsImageReadSGI() - Read a SGI image file.
- */
-
-/*
- * Include necessary headers...
- */
-
-#include "image-private.h"
-#include "image-sgi.h"
-
-
-/*
- * '_cupsImageReadSGI()' - Read a SGI image file.
- */
-
-int /* O - Read status */
-_cupsImageReadSGI(
- cups_image_t *img, /* IO - cupsImage */
- FILE *fp, /* I - cupsImage file */
- cups_icspace_t primary, /* I - Primary choice for colorspace */
- cups_icspace_t secondary, /* I - Secondary choice for colorspace */
- int saturation, /* I - Color saturation (%) */
- int hue, /* I - Color hue (degrees) */
- const cups_ib_t *lut) /* I - Lookup table for gamma/brightness */
-{
- int i, y; /* Looping vars */
- int bpp; /* Bytes per pixel */
- sgi_t *sgip; /* SGI image file */
- cups_ib_t *in, /* Input pixels */
- *inptr, /* Current input pixel */
- *out; /* Output pixels */
- unsigned short *rows[4], /* Row pointers for image data */
- *red,
- *green,
- *blue,
- *gray,
- *alpha;
-
-
- /*
- * Setup the SGI file...
- */
-
- sgip = sgiOpenFile(fp, SGI_READ, 0, 0, 0, 0, 0);
-
- /*
- * Get the image dimensions and load the output image...
- */
-
- /*
- * Check the image dimensions; since xsize and ysize are unsigned shorts,
- * just check if they are 0 since they can't exceed CUPS_IMAGE_MAX_WIDTH or
- * CUPS_IMAGE_MAX_HEIGHT...
- */
-
- if (sgip->xsize == 0 || sgip->ysize == 0 ||
- sgip->zsize == 0 || sgip->zsize > 4)
- {
- fprintf(stderr, "DEBUG: Bad SGI image dimensions %ux%ux%u!\n",
- sgip->xsize, sgip->ysize, sgip->zsize);
- sgiClose(sgip);
- return (1);
- }
-
- if (sgip->zsize < 3)
- img->colorspace = secondary;
- else
- img->colorspace = (primary == CUPS_IMAGE_RGB_CMYK) ? CUPS_IMAGE_RGB : primary;
-
- img->xsize = sgip->xsize;
- img->ysize = sgip->ysize;
-
- cupsImageSetMaxTiles(img, 0);
-
- bpp = cupsImageGetDepth(img);
-
- if ((in = malloc(img->xsize * sgip->zsize)) == NULL)
- {
- fputs("DEBUG: Unable to allocate memory!\n", stderr);
- sgiClose(sgip);
- return (1);
- }
-
- if ((out = malloc(img->xsize * bpp)) == NULL)
- {
- fputs("DEBUG: Unable to allocate memory!\n", stderr);
- sgiClose(sgip);
- free(in);
- return (1);
- }
-
- if ((rows[0] = calloc(img->xsize * sgip->zsize,
- sizeof(unsigned short))) == NULL)
- {
- fputs("DEBUG: Unable to allocate memory!\n", stderr);
- sgiClose(sgip);
- free(in);
- free(out);
- return (1);
- }
-
- for (i = 1; i < sgip->zsize; i ++)
- rows[i] = rows[0] + i * img->xsize;
-
- /*
- * Read the SGI image file...
- */
-
- for (y = 0; y < img->ysize; y ++)
- {
- for (i = 0; i < sgip->zsize; i ++)
- sgiGetRow(sgip, rows[i], img->ysize - 1 - y, i);
-
- switch (sgip->zsize)
- {
- case 1 :
- if (sgip->bpp == 1)
- for (i = img->xsize - 1, gray = rows[0], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = *gray++;
- }
- else
- for (i = img->xsize - 1, gray = rows[0], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = (*gray++) / 256 + 128;
- }
- break;
- case 2 :
- if (sgip->bpp == 1)
- for (i = img->xsize - 1, gray = rows[0], alpha = rows[1], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = (*gray++) * (*alpha++) / 255;
- }
- else
- for (i = img->xsize - 1, gray = rows[0], alpha = rows[1], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = ((*gray++) / 256 + 128) * (*alpha++) / 32767;
- }
- break;
- case 3 :
- if (sgip->bpp == 1)
- for (i = img->xsize - 1, red = rows[0], green = rows[1],
- blue = rows[2], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = *red++;
- *inptr++ = *green++;
- *inptr++ = *blue++;
- }
- else
- for (i = img->xsize - 1, red = rows[0], green = rows[1],
- blue = rows[2], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = (*red++) / 256 + 128;
- *inptr++ = (*green++) / 256 + 128;
- *inptr++ = (*blue++) / 256 + 128;
- }
- break;
- case 4 :
- if (sgip->bpp == 1)
- for (i = img->xsize - 1, red = rows[0], green = rows[1],
- blue = rows[2], alpha = rows[3], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = (*red++) * (*alpha) / 255;
- *inptr++ = (*green++) * (*alpha) / 255;
- *inptr++ = (*blue++) * (*alpha++) / 255;
- }
- else
- for (i = img->xsize - 1, red = rows[0], green = rows[1],
- blue = rows[2], alpha = rows[3], inptr = in;
- i >= 0;
- i --)
- {
- *inptr++ = ((*red++) / 256 + 128) * (*alpha) / 32767;
- *inptr++ = ((*green++) / 256 + 128) * (*alpha) / 32767;
- *inptr++ = ((*blue++) / 256 + 128) * (*alpha++) / 32767;
- }
- break;
- }
-
- if (sgip->zsize < 3)
- {
- if (img->colorspace == CUPS_IMAGE_WHITE)
- {
- if (lut)
- cupsImageLut(in, img->xsize, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, in);
- }
- else
- {
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_RGB :
- case CUPS_IMAGE_RGB_CMYK :
- cupsImageWhiteToRGB(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageWhiteToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageWhiteToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageWhiteToCMYK(in, out, img->xsize);
- break;
- }
-
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
- }
- else
- {
- if ((saturation != 100 || hue != 0) && bpp > 1)
- cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
- switch (img->colorspace)
- {
- default :
- break;
-
- case CUPS_IMAGE_WHITE :
- cupsImageRGBToWhite(in, out, img->xsize);
- break;
- case CUPS_IMAGE_RGB :
- cupsImageRGBToRGB(in, out, img->xsize);
- break;
- case CUPS_IMAGE_BLACK :
- cupsImageRGBToBlack(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMY :
- cupsImageRGBToCMY(in, out, img->xsize);
- break;
- case CUPS_IMAGE_CMYK :
- cupsImageRGBToCMYK(in, out, img->xsize);
- break;
- }
-
- if (lut)
- cupsImageLut(out, img->xsize * bpp, lut);
-
- _cupsImagePutRow(img, 0, y, img->xsize, out);
- }
- }
-
- free(in);
- free(out);
- free(rows[0]);
-
- sgiClose(sgip);
-
- return (0);
-}
-
-
-/*
- * End of "$Id: image-sgi.c 9771 2011-05-12 05:21:56Z mike $".
- */