Handle NS{Device,Calibrated}BlackColorSpace correctly in image drawing.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@18646 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
alexm 2004-02-24 14:48:35 +00:00
parent 70465b5706
commit 1a45f81496
2 changed files with 18 additions and 4 deletions

View file

@ -1,3 +1,11 @@
2004-02-24 15:45 Alexander Malmberg <alexander@malmberg.org>
* Source/art/image.m: Add support for grayscale, one-is-black
color spaces.
(_image_get_color_rgb_cmyk_gray): Invert gray value if one is black.
(-DPSimage:::::::::::): If the color space is NSDeviceBlackColorSpace
or NSCalibratedColorSpace, treat one as black.
2004-02-17 Adam Fedor <fedor@gnu.org>
* Source/x11/XGServerWindow.m ([XGServer -orderwindow:::]): Don't

View file

@ -102,7 +102,8 @@ typedef struct
0 unknown, use colorspacename
1 rgb
2 cmyk
3 gray
3 gray, 1=white
4 gray, 1=black
*/
int colorspace;
NSString *colorspacename;
@ -189,6 +190,10 @@ static void _image_get_color_rgb_cmyk_gray(image_info_t *ii, render_run_t *ri,
{
ri->r = ri->g = ri->b = values[0];
}
else if (ii->colorspace == 4)
{
ri->r = ri->g = ri->b = 255 - values[0];
}
}
@ -708,10 +713,11 @@ seem to cause edges to be off by a pixel
else if (colorSpaceName == NSDeviceCMYKColorSpace)
ii.colorspace = 2;
else if (colorSpaceName == NSDeviceWhiteColorSpace ||
colorSpaceName == NSDeviceBlackColorSpace ||
colorSpaceName == NSCalibratedWhiteColorSpace ||
colorSpaceName == NSCalibratedBlackColorSpace)
colorSpaceName == NSCalibratedWhiteColorSpace)
ii.colorspace = 3;
else if (colorSpaceName == NSDeviceBlackColorSpace ||
colorSpaceName == NSCalibratedBlackColorSpace)
ii.colorspace = 4;
else
ii.colorspace = 0;