Re: [Lcms-user] First steps and some questions
An ICC-based CMM for color management
Brought to you by:
mm2
|
From: Marti M. <mar...@li...> - 2012-09-27 22:13:55
|
Hi, Just add cmsSetAdaptationState(1.0) at the begin of your code to get same results as photoshop. BTW, are you using recent versions of lcms?... that should be the default right now. The reason why this fix the issue is somehow complicated. ICC even published a note on that http://color.org/ICC_white_paper_6_v2_and_v4_display_profile_differences.pdf I would recommend you to avoid absolute colorimetric intent whatever possible. It is only useful for calculations, and may people gets confused because the color cast due to lack of chromatic adaptation. Perceptual or relative colorimetric are way more intuitive. Regards Marti. El 27/09/2012 22:11, Andreas Rettig escribió: > Thanks a lot for help! > > When I convert with Photoshop to sRGB / Absolute Colorimetric, I get > different colors than I get from lcms. > Example: At xy(268, 190) I get RGB(0,163,77) in Photoshop, but RGB(77, > 164, 1) in lcms. > Both images are opened in Photoshop for picking the colors. > > I noticed the color shifts in the border areas, too, but the > difference is much bigger there than the difference generated by > different positions on the screen. > > Code is pretty simple: > > QImage* image = new QImage("/Users/ar/Desktop/basICColor_CM-Ampel.jpeg"); > cmsHPROFILE hInProfile, hOutProfile; > cmsHTRANSFORM hTransform; > hInProfile = cmsOpenProfileFromFile("/Users/ar/Desktop/ampel.icc", "r"); > hOutProfile = cmsOpenProfileFromFile("/System/Library/ColorSync/Profiles/sRGB Profile.icc", "r"); > hTransform = cmsCreateTransform(hInProfile, > TYPE_BGR_8, > hOutProfile, > TYPE_BGR_8, > INTENT_ABSOLUTE_COLORIMETRIC, 0); > cmsCloseProfile(hInProfile); > cmsCloseProfile(hOutProfile); > uchar *rgbOutTemp = new uchar[(image->width() * image->height()) * 3]; > uchar *rgbInTemp = new uchar[(image->width() * image->height()) * 3]; > int j = 0; > for(int y = 0; y < image->height(); y++){ > for(int x = 0; x < image->width(); x++){ > QColor col = image->pixel(x, y); > rgbInTemp[j] = col.blue(); > rgbInTemp[j + 1] = col.green(); > rgbInTemp[j + 2] = col.red(); > j += 3; > } > } > cmsDoTransform(hTransform,rgbInTemp,rgbOutTemp,image->width()*image->height()); > QImage* imout = new QImage(image->width(), image->height(), QImage::Format_RGB32); > int s = 0; > for(int h = 0; h < imout->height(); h++){ > for(int w = 0; w < imout->width(); w++){ > QColor color(rgbOutTemp[s], rgbOutTemp[s+1], rgbOutTemp[s+2]); > imout->setPixel(w, h, color.rgb()); > s+=3; > } > } > ui->label->setPixmap(QPixmap::fromImage(*imout)); > imout->save("/Users/ar/Desktop/saved.jpg","JPG",100); > > Regards > Andreas > > Am 27.09.2012 um 20:31 schrieb Marti Maria <mar...@li... > <mailto:mar...@li...>>: > >> >> Hi Andreas, >> >> I have tested your image with PS CS4 and get 1 digital count of >> deviation of PhotoShop, which is due to the way different CMM do >> rounding. I can see no differences in color. >> >> Could you please detail the steps you follow to get different results? >> >> Thanks >> Marti. >> >> >> El 27/09/2012 19:37, Andreas Rettig escribió: >>> Hello, >>> >>> I'm trying to make my first steps with LCMS and build a very simple >>> application to get familiar with everything. >>> All I want to do is transform a RGB-Jpeg from a special input >>> profile to sRGB and produce the same results I get when I do exactly >>> the same in Photoshop. >>> >>> I'm using that image for testing with its embedded ICC profile as >>> Input profile: >>> >>> http://www.colormanagement.org/download_files/basICColor_CM-Ampel.jpg >>> >>> Then I do a simple transformation from ampel.icc -> sRGB.icc, with >>> different intents. >>> The results are always a little different from what I can produce in >>> Photoshop (using the same profiles and the same intent). >>> >>> The traffic light is green after the transformation, which shows me >>> that it roughly works - but I expect to get exactly the same result. >>> >>> The same happens in Gimp - it's always a little different from what >>> I get through lcms (I saved the results to a file and checked >>> RGB-Values). >>> Especially these grids at the borders have very different colors. >>> >>> Sourcecode is more or less from the examples, nothing special. >>> Profiles are the exactly the same in lcms and Photoshop. >>> >>> Regards >>> Andreas >>> >>> >>> ------------------------------------------------------------------------------ >>> Everyone hates slow websites. So do we. >>> Make your web apps faster with AppDynamics >>> Download AppDynamics Lite for free today: >>> http://ad.doubleclick.net/clk;258768047;13503038;j? >>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>> >>> >>> _______________________________________________ >>> Lcms-user mailing list >>> Lcm...@li... >>> https://lists.sourceforge.net/lists/listinfo/lcms-user >> > |