[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: lab color emitted from quartz pdf context edward m taffel Wed Jan 04 17:00:26 2012


using your method to create a lab d50 space:

1. the same lab color no longer renders correctly on display, in the desktop 
icon, or in preview: the color appears as did the original in acrobat—a black;
2. in acrobat no color is rendered, whatsoever.

using chris murphy’s method to analyze the file, the requisite data is now:

                                                        Fill color space
                                                                Lab color space
white point
black point
Components range
                                                        Fill colorant values

the emitted a* & b* values are similar to those posted by chris for the 
original test file, & still unmapped.

it was worth a try! any further thoughts?


On Dec 15, 2011, at 6:12 PM, Claudio Wilmanns wrote:

> Hi Edward,
> nice to see you again :)
> I'm not sure if this helps as I'm not much experienced with Quartz PDF 
> rendering, but following your discussion I thought it is worth a shot.
> You may have to create your own Lab colorspace specifying the encoding range 
> you need, not limited to [0.0 … 1.0]. Use CGColorSpaceCreateLab for this. 
> Then you should be able to create a CGColor by calling CGColorCreate just as 
> you are doing right now, I presume.
> Here's some Cocoa/ObjC code I'm using, just make your adaptations for C++ and 
> it should work right out the box.
> -(CGColorSpaceRef) getLabColorSpace {
>       const CGFloat whitePoint[3] = {96.42, 100.00, 82.49}; // XYZ values of 
> the PCS white point (ICC D50 in this case)
>       const CGFloat blackPoint[3] = {0.0, 0.0, 0.0}; // XYZ values of the PCS 
> black point 
>       const CGFloat range[4] = {-128.0, 128.0, -128.0, 128}; // a* and b* 
> encoding range. It is practically limited from -128.0 to 127.99609375, so the 
> +a* and +b* limits used here may lead to unexpected results in rare cases as 
> they are slightly larger
>       static CGColorSpaceRef myLabColorSpace = NULL; // set once, the first 
> time the function is called
>       if (myLabColorSpace == NULL)
>               myLabColorSpace = CGColorSpaceCreateLab (whitePoint, 
> blackPoint, range);
>       return myLabColorSpace;
> }
> There are two other ways that might fit your needs better as they create a 
> CGColorSpaceRef based on an arbitrary ICC profile or a system ICC profiles 
> referenced by its name. Using the "Generic Lab Profile.icc" sounds promising 
> to me. Those ways are explained in Technical Q&A QA1396 – Creating color 
> spaces that ensure color matching. See 
> <http://developer.apple.com/library/mac/#qa/qa1396/_index.html>.
> Again, I hope this helps. Plz let us know.
> Viele Grüße
> Claudio
> Am 14.12.2011 um 18:12 schrieb edward m taffel:
>> it may be possible to define a new lab profile (as does adobe) for use w/ 
>> lab colors i create  (via CGColorCreate).

Do not post admin requests to the list. They will be ignored.
Printing mailing list      ([EMAIL PROTECTED])
Help/Unsubscribe/Update your Subscription:

This email sent to [EMAIL PROTECTED]