Alexei,
below a example how the linear RGB profile.
You can of course take some other standard values.
void
write_profile(float gamma, float rx, float ry, float gx, float gy,
float bx, float by) {
cmsCIExyYTRIPLE p = {{rx,ry},{gx,gy},{bx,by}};
LPGAMMATABLE g[3];
g[0] = g[1] = g[2] = cmsBuildGamma(1, gamma);
cmsHPROFILE hp = cmsCreateRGBProfile( cmsD50_xyY(), &p, g);
_cmsSaveProfile( hp, "matrixRGB.icc" );
cmsCloseProfile(hp);
}
regards
Kai-Uwe Behrmann
--
development for color management
www.behrmann.name + www.oyranos.org + www.cinepaint.org
Am 12.03.07, 16:19 -0700 schrieb Alexei Puzikov:
> Hello,
>
> I've tried to find out the answer to this question in tutorial,
> samples sources and in the mailing list, but failed to achieve the
> required results.
>
> So, I have lots of TIFF files created on Macs with Adobe Photoshop.
> Some of them are in sRGB; most of them are in AdobeRGB. All of them
> have the corresponding ICC profiles embedded inside.
>
> So, I need to convert them to linear color space, basically, by going
> >from sRGB (approx. gamma 2.2, but the exact algorithm is slightly
> different) and AdobeRGB (also almost 2.2). Previously I've been
> working with sRGB only and used some custom math, but now we're
> switching to AdobeRGB and I don't want to touch the math anymore, so I
> want to switch to LCMS for conversion.
>
> The problem is - how do I create the linear gamma 1.0 profile and
> corresponding transform?
>
> LPGAMMATABLE Transfer[3];
> cmsHPROFILE LinearProfile;
>
> Transfer[0] = cmsBuildGamma(256, 1);
> Transfer[1] = cmsBuildGamma(256, 1);
> Transfer[2] = cmsBuildGamma(256, 1);
>
> LinearProfile = cmsCreateLinearizationDeviceLink(icSigRgbData,
> Transfer);
>
> doesn't work:
>
> int iccfound = 0;
> iccfound = TIFFGetField(in, TIFFTAG_ICCPROFILE, &profile_size,
> &icc_profile);
> if (iccfound) {
> TiffProfile = cmsOpenProfileFromMem(icc_profile,
> profile_size);
> }
>
> and then
>
> DWORD PixelType = TYPE_RGBA_16;
> hTransform = cmsCreateTransform(TiffProfile,
> PixelType,
> LinearProfile,
> PixelType,
> INTENT_PERCEPTUAL, 0);
>
> results in error 12288: invalid PCS. And I still think it shouldn't,
> since it's not real profile per se.
>
> So what's the basic idea? How can I create the linear profile without
> reverting to some ICC files I have no idea where to get from?
>
> Sorry if the question is dumb, but I'm really out of ideas.
>
> Alexei Puzikov
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Lcms-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lcms-user