more detailed version of my last ... in a program that supports color management using windows ICM, an image is typically displayed using a method such as WM_PAINT, BeginPaint SetColorSpace SetDIBBits(*). During SetDIBBits, Windows converts this source bitmap (based on the params to SetColorSpace) to the profile of the screen as it copies it to the video memory.
with a program that doesn't support ICM, Windows just simply copies from the source to video ram. GetPixel reads from the video ram, and hence returns values in the profile of the screen (to find what profile ICM thinks the screen is, use GetICMProfile) (*) for nitpickers, I didn't say BitBlt, as when using this method to display an image, ICM is ignored. but ...... as Bob is I think trying to point out, reading from the sceen is not a very good idea. if you want accurate color go to the source - ie the original file, not the result of what has been converted to be displayed. oh, and Photoshop does not work like any other program you are likely to meet. I believe it does it's own conversion using Adobe ACE instead of Windows ICM, and then copies that to video memory using a lower level API (DDI?). just a hunch - unproven. Louis Solomon www.SteelBytes.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