Hi
Thanks for the info. I will keep a look out for more V4 options.
I have version 1.13 which I thought was the latest and it is saying
cmsSetProfileICCversion is not defined Did I miss something ?
OK I think I get the Lut stuff. I already have the input / output and CLuts
created, the sample code looks like it is copying 'pregenerated' input and
output luts into the profile via cmsAllocLinearTable, which is fine with a
little reginking of the luts I have.
The Clut call cmsSample3DGrid looks like it uses a callback with and input
value and an output value which is returned, is the Cargo just extra things
the user may whish to pass between the main and callback functions ?
If I already have a Lut made up in the correct format is there a call to
allocate it directly to the _lcms_LUT_struc->T pointer or any other options
of how to fill this Lut out ?
Many Thanks
Mike Wilsher
----- Original Message -----
From: "Marti Maria" <[EMAIL PROTECTED]>
To: "Mike Wilsher" <[EMAIL PROTECTED]>
Cc: "Lcms-User" <[EMAIL PROTECTED]>
Sent: Saturday, August 14, 2004 2:29 PM
Subject: Re: Tips on using lcms
> Hi,
>
> > I am not sure how you ask lcms to create a Version 4 profile as
opposed to a Version 2
>
> Sorry to say, but currently, lcms only supports reading of v4 profiles.
There are, however,
> some reserved entries for v4 tags, since I intend to provide writing
support in next revisions.
> But still, v4 is a moving target and I am waiting the ICC spec to
stabilize enough to figure
> out which tags are worth to implement. Multilocalized unicode is right now
read only,
> as well as parametric curves. The header is same in both versions.
ProfileID is supported
> across cmsTakeProfileID() and cmsSetProfileID() and you can set version
number
> using cmsSetProfileICCversion()
>
> Regarding v2, there are some samples on how to build profiles in the
"samples" directory.
> Take a look on itufax.c, mkgrayer.c, mktiff8.c or mkcmy.c
>
> Basically, your code is correct, except you are putting anything in the
LUT.
>
> The correct sequence would be:
>
> Lut = cmsAllocLUT();
> cmsAlloc3DGrid(Lut, GRID_POINTS, 3, 4);
> cmsAllocLinearTable(... <= This one for setting input/output
tables
> cmsSample3DGrid(... <= This one for filling the grid
>
> See the tutorial, part "13. LUT handling" for more details.
>
> Regards,
> Marti Maria
> The little cms project
> http://www.littlecms.com
> [EMAIL PROTECTED]
>
>
>
> ----- Original Message -----
> From: Mike Wilsher
> To: [EMAIL PROTECTED]
> Sent: Saturday, August 14, 2004 10:38 AM
> Subject: Tips on using lcms
>
>
> Hi
>
> I am looking at using your excellent little cms to create ICC
profiles:
>
> I am not sure how you ask lcms to create a Version 4 profile as
opposed to a Version 2, as the header version, description and
> lut tags are different but I could not spot how you tell little cms how to
write V4. The header looks like it is defaulted to
> version 2 and I can't find V4 format description tag. So does lcms support
writing V4 profiles, if so how do you do this, or is it
> just some support for the lut tags.
>
> I also wondered if you had any skeleton code which listed the sort of
calls you would use to create a basic profile and fill it out.
> I was guessing something like the skeleton listed below, it seems to work
!! I am fairly conversant with the ICC profile format so I
> don't need to know what to put in just a few pointers to a typical way of
doing things.
>
> Lastly I did not spot how you set up the input and output lookup tables in
_lcms_LUT_struc, you can set number of channels and entry
> points unless LPWORD L1[MAXCHANNELS];
> LPWORD L2[MAXCHANNELS];
> are simply pointers to the input and output tables ??
>
> Any pointers would really help
>
> Many Thanks
> Mike Wilsher
>
> #include "lcms.h"
> #include <stdarg.h>
>
> int main(int argc, char *argv[])
> {
> cmsHPROFILE hProfile;
> LPLUT Lut;
> DWORD Flags = 0;
>
> // Create Blank Output Profile
> hProfile = _cmsCreateProfilePlaceholder();
> if (!hProfile) // can't allocate
> return NULL;
>
> cmsSetDeviceClass(hProfile,icSigInputClass);
> cmsSetColorSpace(hProfile, icSigRgbData);
> cmsSetPCS(hProfile, icSigLabData);
> cmsSetRenderingIntent(hProfile, INTENT_PERCEPTUAL);
> cmsSetHeaderFlags(hProfile, Flags);
> cmsAddTag(hProfile, icSigMediaWhitePointTag, cmsD50_XYZ() );
>
> // An empty LUT for test
> Lut = cmsAllocLUT();
> if (Lut == NULL) return NULL;
>
> Lut -> InputChan = 3;
> Lut -> OutputChan = 4;
>
> cmsAddTag(hProfile, icSigAToB0Tag, (LPVOID) Lut);
> cmsFreeLUT(Lut);
>
> cmsAddTag(hProfile, icSigDeviceMfgDescTag, (LPVOID) "lcms internal");
> cmsAddTag(hProfile, icSigDeviceModelDescTag, (LPVOID) "lcms
built-in");
> cmsAddTag(hProfile, icSigProfileDescriptionTag, (LPVOID)
"mjw_Description");
> cmsAddTag(hProfile, icSigCopyrightTag, (LPVOID) "No copyright, use
freely");
>
> // Save resultant profile
> _cmsSaveProfile(hProfile, "test.icm");
>
> // Tidy up
> cmsCloseProfile(hProfile);
>
> return (1);
> }
>
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Lcms-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/lcms-user