Hi,
I wanna convert from RGB to Lab and back.
What goes wrong with my data?

C-code sample is attached.

thanks,
Kai-Uwe
// test programm
// 1. arg = red
// 2. arg = green
// 3. arg = blue
// 05.02.2003 Kai-Uwe Behrmann

#include "lcms.h"

int main(int argc, char* argv[])
{

//  cmsHPROFILE hInProfile, hOutProfile;        // externe Profile
  cmsHTRANSFORM hTransform;                     // lcms intern
  unsigned short InputBuffer[3]; 
  unsigned short OutputBuffer[3];  


  int BuffersSizeInPixels = 1;

  //hInProfile  = cmsOpenProfileFromFile(argv[1], "r");
  //hOutProfile = cmsOpenProfileFromFile(argv[2], "r");
  cmsHPROFILE hLab  = cmsCreateLabProfile(cmsD50_xyY());
  cmsHPROFILE hsRGB  = cmsCreate_sRGBProfile();

  if (argc != 4) {
    printf("%s needs values of [Red] [Green] [Blue] \n", argv[0]);
    exit(1);
  };

  InputBuffer[0] = atoi(argv[1]);
  InputBuffer[1] = atoi(argv[2]);
  InputBuffer[2] = atoi(argv[3]); 

  hTransform = cmsCreateTransform(hsRGB,
                                  TYPE_RGB_8,
                                  hLab,
                                  TYPE_Lab_8,
                                  INTENT_PERCEPTUAL, 0);

  cmsDoTransform(hTransform, InputBuffer,
                             OutputBuffer,
                             BuffersSizeInPixels);

  printf ("R=%d\tG=%d\tB=%d\n",InputBuffer[0], InputBuffer[1], InputBuffer[2]);
  printf ("L=%d\ta=%d\tb=%d\n",OutputBuffer[0], OutputBuffer[1], OutputBuffer[2]);

  return 0;
}

Reply via email to