On May 8, 2008, at 19:15:12, Alastair M. Robinson wrote:

> What you probably could do is create the individual stages of your
> transform with cmsCreateTransform(), convert these transforms to
> DeviceLinks with cmsTransform2DeviceLink(), and then chain the
> devicelinks together using cmsCreateMultiprofileTransform().


I've had time to get back to handling a 4-profile transform and have  
run into a problem. I'll start with the profiles in use in my test  
case, in this order:

profs[0] = input (rgb)
profs[1] = printer (cmyk)
profs[2] = proofer (cmyk)
profs[3] = monitor (rgb)

I first create 2 xforms, one for input -> printer, and another for  
proofer -> monitor.

xform1 = cmsCreateTransform(profs[0], fromFormat, profs[1],  
lcmsSpace2lcmsFormat(cmsGetColorSpace(profs[1]), true,  
bytesPerChannel), cmsTakeRenderingIntent(profs[0]), 0);
xform2 = cmsCreateTransform(profs[2],  
lcmsSpace2lcmsFormat(cmsGetColorSpace(profs[2]), true,  
bytesPerChannel), profs[3], toFormat,  
cmsTakeRenderingIntent(profs[2]), 0);

Note that fromFormat is the format for the input data used with the  
input profile, and toFormat is the format for the output data used  
with the monitor profile. What I might be getting wrong here are the  
other 2 formats; xform1's output format, and xform2's input format.  
Does my code look correct for those?

The xforms are then converted to device link profiles:

link1 = cmsTransform2DeviceLink(xform1, 0);
link2 = cmsTransform2DeviceLink(xform2, 0);

And the final xform is created from those:

xform = cmsCreateMultiprofileTransform(links, 2, fromFormat, toFormat,  
cmsTakeRenderingIntent(profs[1]), 0);

The end result is that I get error "Invalid PCS" when GetPhase is  
called on the link2 profile - it's icSigRgbData. How do I fix this?

If I instead call:

xform = cmsCreateTransform(link1, fromFormat, link2, toFormat,  
cmsTakeRenderingIntent(profs[1]), 0);

which I did just as a test, I get the error "Device link is operating  
on wrong colorspace on output" for link1.

_________________________________________________________
Steve Mills                              Me: 952-401-6255
Senior Software Architect                         MultiAd
[EMAIL PROTECTED]                       www.multi-ad.com



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to