lcms-user Mailing List for Little cms color engine (Page 197)
An ICC-based CMM for color management
Brought to you by:
mm2
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(15) |
Jun
(24) |
Jul
(9) |
Aug
(14) |
Sep
|
Oct
(12) |
Nov
(17) |
Dec
(31) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(34) |
Feb
(7) |
Mar
(7) |
Apr
(16) |
May
(4) |
Jun
(14) |
Jul
(34) |
Aug
(54) |
Sep
(11) |
Oct
(25) |
Nov
(1) |
Dec
(6) |
| 2003 |
Jan
(27) |
Feb
(54) |
Mar
(23) |
Apr
(68) |
May
(82) |
Jun
(36) |
Jul
(45) |
Aug
(45) |
Sep
(49) |
Oct
(30) |
Nov
(65) |
Dec
(23) |
| 2004 |
Jan
(52) |
Feb
(52) |
Mar
(35) |
Apr
(38) |
May
(93) |
Jun
(22) |
Jul
(51) |
Aug
(50) |
Sep
(73) |
Oct
(28) |
Nov
(30) |
Dec
(51) |
| 2005 |
Jan
(22) |
Feb
(79) |
Mar
(38) |
Apr
(51) |
May
(95) |
Jun
(60) |
Jul
(56) |
Aug
(49) |
Sep
(22) |
Oct
(43) |
Nov
(15) |
Dec
(40) |
| 2006 |
Jan
(51) |
Feb
(31) |
Mar
(37) |
Apr
(25) |
May
(9) |
Jun
(13) |
Jul
(17) |
Aug
(66) |
Sep
(7) |
Oct
(12) |
Nov
(14) |
Dec
(31) |
| 2007 |
Jan
(18) |
Feb
(9) |
Mar
(22) |
Apr
(18) |
May
(5) |
Jun
(25) |
Jul
(2) |
Aug
(15) |
Sep
(12) |
Oct
(40) |
Nov
(10) |
Dec
(23) |
| 2008 |
Jan
(21) |
Feb
(56) |
Mar
(12) |
Apr
(23) |
May
(47) |
Jun
(75) |
Jul
(24) |
Aug
(2) |
Sep
(7) |
Oct
(26) |
Nov
(20) |
Dec
(16) |
| 2009 |
Jan
(14) |
Feb
(1) |
Mar
(29) |
Apr
(54) |
May
(18) |
Jun
(16) |
Jul
(5) |
Aug
(3) |
Sep
(38) |
Oct
(6) |
Nov
(25) |
Dec
(28) |
| 2010 |
Jan
(11) |
Feb
(26) |
Mar
(2) |
Apr
(10) |
May
(45) |
Jun
(94) |
Jul
(11) |
Aug
(32) |
Sep
(18) |
Oct
(37) |
Nov
(19) |
Dec
(34) |
| 2011 |
Jan
(21) |
Feb
(16) |
Mar
(16) |
Apr
(29) |
May
(17) |
Jun
(18) |
Jul
(7) |
Aug
(21) |
Sep
(10) |
Oct
(7) |
Nov
(15) |
Dec
(6) |
| 2012 |
Jan
(13) |
Feb
(16) |
Mar
(15) |
Apr
(12) |
May
(15) |
Jun
(31) |
Jul
(22) |
Aug
(15) |
Sep
(46) |
Oct
(21) |
Nov
(15) |
Dec
(33) |
| 2013 |
Jan
(19) |
Feb
(17) |
Mar
(31) |
Apr
(17) |
May
(27) |
Jun
(24) |
Jul
(26) |
Aug
(11) |
Sep
(9) |
Oct
(22) |
Nov
(14) |
Dec
(16) |
| 2014 |
Jan
(20) |
Feb
(66) |
Mar
(29) |
Apr
(13) |
May
(9) |
Jun
|
Jul
(11) |
Aug
(21) |
Sep
(15) |
Oct
(5) |
Nov
(5) |
Dec
(10) |
| 2015 |
Jan
(6) |
Feb
(26) |
Mar
(26) |
Apr
|
May
(9) |
Jun
(5) |
Jul
(5) |
Aug
(11) |
Sep
(8) |
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
(3) |
Feb
|
Mar
(9) |
Apr
(3) |
May
(16) |
Jun
(26) |
Jul
(32) |
Aug
(27) |
Sep
(9) |
Oct
|
Nov
(4) |
Dec
(10) |
| 2017 |
Jan
(11) |
Feb
(44) |
Mar
(6) |
Apr
(8) |
May
(1) |
Jun
(2) |
Jul
(34) |
Aug
(28) |
Sep
(3) |
Oct
(9) |
Nov
(3) |
Dec
|
| 2018 |
Jan
(1) |
Feb
(5) |
Mar
(6) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(6) |
Oct
|
Nov
(6) |
Dec
|
| 2019 |
Jan
(18) |
Feb
(16) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(3) |
Oct
(10) |
Nov
(1) |
Dec
(3) |
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(17) |
Jun
(23) |
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2021 |
Jan
(10) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
(1) |
Dec
|
| 2022 |
Jan
(8) |
Feb
|
Mar
(9) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(13) |
Nov
(12) |
Dec
|
| 2023 |
Jan
|
Feb
(1) |
Mar
(9) |
Apr
|
May
(3) |
Jun
(5) |
Jul
(3) |
Aug
(8) |
Sep
|
Oct
|
Nov
(1) |
Dec
(9) |
| 2024 |
Jan
(8) |
Feb
|
Mar
(14) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(2) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
|
From: <ma...@li...> - 2001-08-01 14:08:56
|
Hi, Yes, is an incoherence solved in new revision, still unfinished. TYPE_ABGR_8 is being rendered on output as BGRA_8, just because windows likes it in such form. New revision will fix this and add TYPE_BGRA_8 as well. I hope to release new stuff on summer's end. Martí Maria The little cms project http://www.littlecms.com ma...@li... ----- Original Message ----- From: "Boris Letocha" <b.l...@gm...> To: <lcm...@li...> Sent: Wednesday, August 01, 2001 8:41 AM Subject: [Lcms-user] Bug in type TYPE_ABGR_8? It is defined as: (COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH( 1)) On input it use: Unroll4BytesSwap wIn[3] = RGB_8_TO_16(*accum); accum++; // K wIn[2] = RGB_8_TO_16(*accum); accum++; // C wIn[1] = RGB_8_TO_16(*accum); accum++; // M wIn[0] = RGB_8_TO_16(*accum); accum++; // Y On output it use: Pack3BytesAndSkip1Swap *output++ = RGB_16_TO_8(wOut[2]); *output++ = RGB_16_TO_8(wOut[1]); *output++ = RGB_16_TO_8(wOut[0]); output++; which is different functionality! one of them is wrong... From my position it is on input side because on Windows you have BGRA and not ABGR. Boris Letocha PS: May be I am wrong, but please prove it :-) _______________________________________________ Lcms-user mailing list Lcm...@li... http://lists.sourceforge.net/lists/listinfo/lcms-user |
|
From: Boris L. <b.l...@gm...> - 2001-08-01 12:00:50
|
It is defined as:
(COLORSPACE_SH(PT_RGB)|EXTRA_SH(1)|CHANNELS_SH(3)|BYTES_SH(1)|DOSWAP_SH(
1))
On input it use:
Unroll4BytesSwap
wIn[3] =3D RGB_8_TO_16(*accum); accum++; // K
wIn[2] =3D RGB_8_TO_16(*accum); accum++; // C
wIn[1] =3D RGB_8_TO_16(*accum); accum++; // M
wIn[0] =3D RGB_8_TO_16(*accum); accum++; // Y
On output it use:
Pack3BytesAndSkip1Swap
*output++ =3D RGB_16_TO_8(wOut[2]);
*output++ =3D RGB_16_TO_8(wOut[1]);
*output++ =3D RGB_16_TO_8(wOut[0]);
output++;
which is different functionality!
one of them is wrong...
From my position it is on input side because on Windows you have BGRA
and not ABGR.
Boris Letocha
PS: May be I am wrong, but please prove it :-)
|
|
From: <ma...@li...> - 2001-07-17 08:40:08
|
Hi, Is same... only lcms has a lot more formats. lcms does support 16 bits per sample, HiFi separations up to 16 channels, planar organization, swapped endian... Even one can build new formats by using the provided macros. Martí Maria The little cms project http://www.littlecms.com ma...@li... ----- Original Message ----- From: Kevin To: lcm...@li... Sent: Monday, July 16, 2001 4:50 PM Subject: [Lcms-user] Comparison between microsoft ICM and LCMS I was just curious how the paInputColors and paOutputColors parameters for the TranslateColors function in Microsoft ICM compares with InputFormat and OutputFormat of cmsCreateTransform, are they used for the same thing? The Microsoft ICM accepts the following values: typedef enum { COLOR_GRAY = 1, COLOR_RGB, COLOR_XYZ, COLOR_Yxy, COLOR_Lab, COLOR_3_CHANNEL, COLOR_CMYK, COLOR_5_CHANNEL, COLOR_6_CHANNEL, COLOR_7_CHANNEL, COLOR_8_CHANNEL, COLOR_NAMED, } COLORTYPE; While LCMS has a large selection of values it accepts for what seems to be a comparable purpose -Kevin Koltzau |
|
From: Kevin <ke...@pl...> - 2001-07-16 20:07:58
|
I was just curious how the paInputColors and paOutputColors parameters
for the TranslateColors function in Microsoft ICM compares with
InputFormat and OutputFormat of cmsCreateTransform, are they used for
the same thing?
The Microsoft ICM accepts the following values:
typedef enum
{
COLOR_GRAY = 1,
COLOR_RGB,
COLOR_XYZ,
COLOR_Yxy,
COLOR_Lab,
COLOR_3_CHANNEL,
COLOR_CMYK,
COLOR_5_CHANNEL,
COLOR_6_CHANNEL,
COLOR_7_CHANNEL,
COLOR_8_CHANNEL,
COLOR_NAMED,
} COLORTYPE;
While LCMS has a large selection of values it accepts for what seems to
be a comparable purpose
-Kevin Koltzau
|
|
From: <pro...@so...> - 2001-07-12 08:00:14
|
Y29uZmlybSA4NDM0NTUNCg0KCrnY16LL0br80MLOxdbQ0MSjrLnY16LJ6rDC16jM4gpodHRwOi8v bmV3cy5zb2h1LmNvbQ== |
|
From: Richard M. <Ric...@en...> - 2001-07-06 14:28:30
|
Hi,
I analyzed the code you provided, and it seems that I was using a wrong s=
RGB
profile
Thanks again, Marti
Best Regards
Richard
-----Original Message-----
From: Mart=ED Maria [mailto:ma...@li...]
Sent: Friday, July 06, 2001 9:17 PM
To: Richard Mitanchey
Subject: Re: [Lcms-user] sRGB <--> XYZ transforms
Hi,
??? In my test program I do obtain D65 as XYZ when feed with 0xff, 0xff=
,
0xff, and the back transform also
returns 0xff, 0xff, 0xff.
I am sending the program to you. If anybody else is interested, please =
let
me know and I will send it as well.
Regards,
Mart=ED.
----- Original Message -----
From: Richard Mitanchey
To: lcm...@li...
Sent: Friday, July 06, 2001 9:29 AM
Subject: [Lcms-user] sRGB <--> XYZ transforms
Dear list members,
I'm confused with sRGB <--> XYZ transforms (yes, I've read the Annex =
B
of tutorial, and used cmsFLAGS_NOTPRECALC with INTENT_ABSOLUTE_COLORIMETR=
IC)
My observations are:
sRGB white point (255, 255, 255) is transformed into (30457, 32152,
35275) XYZ color, and back-transformed to sRGB gray point (240, 248, 250).
Is there any way to prevent this, or am I performing a bad transform =
?
Thank you in advance
Richard Mitanchey
Ing=E9nieur des TPE, Docteur en Informatique
Groupe Lumi=E8re et Rayonnement Electromagn=E9tique
Laboratoire des Sciences de l=92Habitat (LASH)
D=E9partement G=E9nie Civil et B=E2timent (DGCB) URA CNRS 1652
Ecole Nationale des Travaux Publics de l'Etat
|
|
From: <ma...@li...> - 2001-07-06 13:58:13
|
Hi, ??? In my test program I do obtain D65 as XYZ when feed with 0xff, 0xff, = 0xff, and the back transform also returns 0xff, 0xff, 0xff. I am sending the program to you. If anybody else is interested, please = let me know and I will send it as well. Regards, Mart=ED. ----- Original Message -----=20 From: Richard Mitanchey=20 To: lcm...@li...=20 Sent: Friday, July 06, 2001 9:29 AM Subject: [Lcms-user] sRGB <--> XYZ transforms Dear list members, I'm confused with sRGB <--> XYZ transforms (yes, I've read the Annex B = of tutorial, and used cmsFLAGS_NOTPRECALC with = INTENT_ABSOLUTE_COLORIMETRIC) My observations are: sRGB white point (255, 255, 255) is transformed into (30457, 32152, = 35275) XYZ color, and back-transformed to sRGB gray point (240, 248, = 250). Is there any way to prevent this, or am I performing a bad transform ? Thank you in advance Richard Mitanchey=20 Ing=E9nieur des TPE, Docteur en Informatique=20 Groupe Lumi=E8re et Rayonnement Electromagn=E9tique=20 Laboratoire des Sciences de l'Habitat (LASH)=20 D=E9partement G=E9nie Civil et B=E2timent (DGCB) URA CNRS 1652=20 Ecole Nationale des Travaux Publics de l'Etat=20 =20 =20 |
|
From: Richard M. <Ric...@en...> - 2001-07-06 12:48:44
|
Dear list members, I'm confused with sRGB <--> XYZ transforms (yes, I've read the Annex B of tutorial, and used cmsFLAGS_NOTPRECALC with INTENT_ABSOLUTE_COLORIMETRIC) My observations are: sRGB white point (255, 255, 255) is transformed into (30457, 32152, 35275= ) XYZ color, and back-transformed to sRGB gray point (240, 248, 250). Is there any way to prevent this, or am I performing a bad transform ? Thank you in advance Richard Mitanchey Ing=E9nieur des TPE, Docteur en Informatique Groupe Lumi=E8re et Rayonnement Electromagn=E9tique Laboratoire des Sciences de l=92Habitat (LASH) D=E9partement G=E9nie Civil et B=E2timent (DGCB) URA CNRS 1652 Ecole Nationale des Travaux Publics de l'Etat |
|
From: <ma...@li...> - 2001-07-04 09:41:26
|
Hi, Just use cmsErrorAction() cmsErrorAction(LCMS_ERROR_IGNORE) if you want no output or cmsErrorAction(LCMS_ERROR_SHOW) if you want message but not aborting by default, lcms does use LCMS_ERROR_ABORT Hope this helps Martí Maria The little cms project http://www.littlecms.com ma...@li... ----- Original Message ----- From: "Maik Wojcieszak" <mw...@wo...> To: <lcm...@li...> Sent: Wednesday, July 04, 2001 6:07 AM Subject: [Lcms-user] Terminating app on error > Hi, > > I'm workink with lcms on a delphi project. > > Problem: if an error occurs lcms show's a message 'lcms is terminating application' > What can I do to catch this exception and prevent my application from > beeing terminated. > > Thank You, > maik > > > > ------------------------------------------------- > wobe-team > Maik Wojcieszak > > Schauenburgerstr. 116 > D-24118 Kiel > > Tel.:+49(0)431-5606-845 > Fax.:+49(0)431-5606-849 > > > > > > > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > http://lists.sourceforge.net/lists/listinfo/lcms-user > > |
|
From: Maik W. <mw...@wo...> - 2001-07-04 09:30:21
|
Hi, I'm workink with lcms on a delphi project. Problem: if an error occurs lcms show's a message 'lcms is terminating application' What can I do to catch this exception and prevent my application from beeing terminated. Thank You, maik ------------------------------------------------- wobe-team Maik Wojcieszak Schauenburgerstr. 116 D-24118 Kiel Tel.:+49(0)431-5606-845 Fax.:+49(0)431-5606-849 |
|
From: <ma...@li...> - 2001-07-02 08:56:27
|
Hi, Well, of course you need to handle both senses :-) Here is the patch for the encoder. Regards, Marti. ----- Original Message ----- From: "John Gray" <gr...@ag...> To: "Martí Maria" <ma...@li...> Cc: <lcm...@li...> Sent: Saturday, June 30, 2001 3:13 PM Subject: Re: [Lcms-user] lcms demo program src? Marti, Your patch works well for reading in the botched adobe images, but it also causes a problem. When I asked the ijg lib to write out a CMYK jpeg, it writes out the adobe markers, but writes out the componets correctly. Now when I read in image I created, it assumes that adobe created, and inverts the componets. See a work around for this? Thanks, John Martí Maria wrote: > John, > > Most CMYK JPEG comes inverted. This is a long history about a Junior > programmer that did a mistake in early versions of PhotoShop, and adobe > trying to keep backwards compatibilty. All CMYK JPEG from adobe > programs are stored with CMYK inks inverted. > > In a conversation with Tom Lane, time ago, he told me that he cannot > change this behaviour on ijg code, since this will break existing > applications that are aware of this, and does the inversion by itselves. > > I am using a patched version of ijg, that does return correct inks, on > depending of adobe markers. I attach the code as well, (is very small). > > If you don't like to use modified version of a library, you can provide > your own reversing. Is only a matter of detect if adobe marker is present, > and if so, reverse (255-x) the channels. > > About the demo sources, well, the demo is using a image processing > library still in development and a lot more complex that the CMM itself, > so I'm afraid it would be of little use. The cmyk->srgb is only a matter > of opening cmyk profile on input and srgb on output, and then apply > transform. Anyway, if you experience any problem feel free to drop > me a note. > > Regards, > Marti. > -- John Gray gr...@ag... AgoraNet, Inc. (302) 224-2475 102 E. Main Street, Suite 303 (302) 224-2552 (fax) Newark, De 19711 http://www.agora-net.com _______________________________________________ Lcms-user mailing list Lcm...@li... http://lists.sourceforge.net/lists/listinfo/lcms-user |
|
From: John G. <gr...@ag...> - 2001-06-30 18:32:31
|
Marti, Your patch works well for reading in the botched adobe images, but it=20 also causes a problem. When I asked the ijg lib to write out a CMYK=20 jpeg, it writes out the adobe markers, but writes out the componets=20 correctly. Now when I read in image I created, it assumes that adobe=20 created, and inverts the componets. See a work around for this? Thanks, John Mart=ED Maria wrote: > John, >=20 > Most CMYK JPEG comes inverted. This is a long history about a Junior > programmer that did a mistake in early versions of PhotoShop, and adobe > trying to keep backwards compatibilty. All CMYK JPEG from adobe=20 > programs are stored with CMYK inks inverted.=20 >=20 > In a conversation with Tom Lane, time ago, he told me that he cannot=20 > change this behaviour on ijg code, since this will break existing=20 > applications that are aware of this, and does the inversion by itselves= .=20 >=20 > I am using a patched version of ijg, that does return correct inks, on > depending of adobe markers. I attach the code as well, (is very small). >=20 > If you don't like to use modified version of a library, you can provide= =20 > your own reversing. Is only a matter of detect if adobe marker is prese= nt,=20 > and if so, reverse (255-x) the channels. >=20 > About the demo sources, well, the demo is using a image processing > library still in development and a lot more complex that the CMM itself= , > so I'm afraid it would be of little use. The cmyk->srgb is only a matt= er=20 > of opening cmyk profile on input and srgb on output, and then apply=20 > transform. Anyway, if you experience any problem feel free to drop=20 > me a note.=20 >=20 > Regards, > Marti. >=20 --=20 John Gray gr...@ag... AgoraNet, Inc. (302) 224-2475 102 E. Main Street, Suite 303 (302) 224-2552 (fax) Newark, De 19711 http://www.agora-net.com |
|
From: <ma...@li...> - 2001-06-30 16:05:49
|
What a strange thing... I am doing same on VC++ 6.0, and all works fine... I guess this is due to mixing default libraries. Try to add lcms source files into your app workspace, (these are only a few .c sources) and recompile. If doing is such way all works fine, then take a look on library workspace settings. I assume you have recompiled the lcms library, if not try also to recompile, assuring debug, alignment etc. are proper. Hope this helps. Regards, Marti. ----- Original Message ----- From: "John Gray" <gr...@ag...> To: <lcm...@li...> Sent: Saturday, June 30, 2001 11:39 AM Subject: [Lcms-user] wierd interaction between lcms and MFC? > Hello, > > I recently integrated lcms into the project I'm working on. The project > consists of a image processing library, a cmdline interface, and MFC > GUI. Other then the GUI, its all platform indepentant. The cmdline > version works fine with lcms. > > The MFC app crashes on simple operations if I link in the lcms lib. I > don't even have to make any calls to the lcms lib. If I ifdef out the > lcms portions of the my lib, and link the MFC GUI without lcms, the app > runs just fine. With lcms, the GUI crashes on little things like > memory allocations. Is lcms redefining something the GUIs using? > > Thanks for you help, > > John > > > -- > John Gray gr...@ag... > AgoraNet, Inc. (302) 224-2475 > 102 E. Main Street, Suite 303 (302) 224-2552 (fax) > Newark, De 19711 http://www.agora-net.com > > > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > http://lists.sourceforge.net/lists/listinfo/lcms-user > > |
|
From: John G. <gr...@ag...> - 2001-06-30 14:58:16
|
Hello, I recently integrated lcms into the project I'm working on. The project consists of a image processing library, a cmdline interface, and MFC GUI. Other then the GUI, its all platform indepentant. The cmdline version works fine with lcms. The MFC app crashes on simple operations if I link in the lcms lib. I don't even have to make any calls to the lcms lib. If I ifdef out the lcms portions of the my lib, and link the MFC GUI without lcms, the app runs just fine. With lcms, the GUI crashes on little things like memory allocations. Is lcms redefining something the GUIs using? Thanks for you help, John -- John Gray gr...@ag... AgoraNet, Inc. (302) 224-2475 102 E. Main Street, Suite 303 (302) 224-2552 (fax) Newark, De 19711 http://www.agora-net.com |
|
From: <ma...@li...> - 2001-06-29 17:57:17
|
John, Most CMYK JPEG comes inverted. This is a long history about a Junior programmer that did a mistake in early versions of PhotoShop, and adobe trying to keep backwards compatibilty. All CMYK JPEG from adobe programs are stored with CMYK inks inverted. In a conversation with Tom Lane, time ago, he told me that he cannot change this behaviour on ijg code, since this will break existing applications that are aware of this, and does the inversion by itselves. I am using a patched version of ijg, that does return correct inks, on depending of adobe markers. I attach the code as well, (is very small). If you don't like to use modified version of a library, you can provide your own reversing. Is only a matter of detect if adobe marker is present, and if so, reverse (255-x) the channels. About the demo sources, well, the demo is using a image processing library still in development and a lot more complex that the CMM itself, so I'm afraid it would be of little use. The cmyk->srgb is only a matter of opening cmyk profile on input and srgb on output, and then apply transform. Anyway, if you experience any problem feel free to drop me a note. Regards, Marti. ----- Original Message ----- From: "John Gray" <gr...@ag...> To: <lcm...@li...> Sent: Friday, June 29, 2001 1:40 PM Subject: [Lcms-user] lcms demo program src? > Hello, > > I'm using ijg lib and the lcms lib to decode jpeg images. > > I have an image I'm having trouble decoding (its a CMYK jpeg image, that > I want to convert to sRGB). The demo app decodes it just fine. I > imagine I'm not setting something up correctly. Is the src to the demo > available? I suspect a peek at it will uncover my problem pretty quickly. > > Thanks, > > John > > -- > John Gray gr...@ag... > AgoraNet, Inc. (302) 224-2475 > 102 E. Main Street, Suite 303 (302) 224-2552 (fax) > Newark, De 19711 http://www.agora-net.com > > > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > http://lists.sourceforge.net/lists/listinfo/lcms-user > > |
|
From: John G. <gr...@ag...> - 2001-06-29 16:59:32
|
Hello, I'm using ijg lib and the lcms lib to decode jpeg images. I have an image I'm having trouble decoding (its a CMYK jpeg image, that I want to convert to sRGB). The demo app decodes it just fine. I imagine I'm not setting something up correctly. Is the src to the demo available? I suspect a peek at it will uncover my problem pretty quickly. Thanks, John -- John Gray gr...@ag... AgoraNet, Inc. (302) 224-2475 102 E. Main Street, Suite 303 (302) 224-2552 (fax) Newark, De 19711 http://www.agora-net.com |
|
From: <ma...@li...> - 2001-06-25 08:48:53
|
Hi John,
I'm not shure to undestand where the problem is,
however embedded profiles is a quite interesting
stuff, I got crazy when trying to find some info
about it time ago. So here are some comments.
Since this is a sort of opinion too, please feel
free to correct me if I am wrong.
Some compex file formats, like TIFF, JPEG, PNG
has the ability of store embedded profiles. Embedded
profiles are nothing more that the whole profile file stored
in some way inside the image format. And why to do this?
Well, a image stored in non-colorimetric color spaces, like
RGB or CMYK is only a bunch of numbers. The interpretation
of these numbers is hardly device dependent. That is, a
RGB=100, 100, 100 can be rendered as a neutral gray
for one monitor, but can be bluish or definitively yellow
on others.
For accomplishing same colors, no matter wich monitor
is used, we need to use a device independent color space
as CIELab is used of TIFF format for example, Or identify
in some way wich color we are talking about when we say
RGB=100, 100, 100
Then, as a mean to characterize the RGB, we can include
a icc profile that does describe the "perfect" monitor intended
to display the image. And this is the embedded profile.
Of course this is not perfect. If our image comes directly
from a scanner, embedding the scanner profile will be most
times a bad move: scanner profiles tend to be as big as
300-400K So, it has no sense to add 300K to a image
of 14K only to characterize colors.
Another solution, could be to transform the image to any
known colorspace (like sRGB) and mark the image as
using this space. This is used by PNG format, when it
labels the image with the sRGB chunk.
This approach is good on small images and when the
quality required is not too high. Unfortunately, all transforms
are always lossy, and the sRGB image we obtain has probably
less gamut that the original one. We are sacrificing fidelity vs.
disk space.
Another approach is to store a reference to a profile instead of
whole profile. This is used by PICT format. In this case, our
example of 400K scanner profile is not stored, but only the
filename of profile.
And this could be good, but unfortunately scanners tend to vary
across time, so all nice colors of an image taken 3 months ago,
and pointing to a scanner profile, could be destroyed on recalibrating
this scanner. Higher end apps does mantain a database of profiles, but
the cost of this latter too hight for a "normal" application.
The profiles more well suited for embedding are matrix-shaper ones.
These usually are about 3-5K and does relate to monitors. sRGB
standard profile, for example, belong to this category. CIE RGB,
Adobe RGB, ColorMatchRGB, CIE RGB. All Photoshop workspaces
are matrix-shaper profiles too.
Back to your original question.
littlecms has only one function to open embedded profiles,
cmsOpenProfileFromMem(). But note that this is equivalent
to save the block to a file, and then open this file as a profile.
For embedding profile is just inverse, you need to read whole
profile file into a memory block and then pass this memory block
to file format library.
JPEG EXAMPLE:
in = fopen("sRGB.icm", "rb");
len = fread(Block, filelenght(fileno(in), 1, in);
fclose(in);
write_icc_profile (cinfo, Block, len);
TIFF EXAMPLE:
in = fopen("sRGB.icm", "rb");
len = fread(Block, filelenght(fileno(in), 1, in);
fclose(in);
TIFFSetField(Tiff, TIFFTAG_ICCPROFILE, Len, Block);
Hope this helps.
Martí Maria
The little cms project
http://www.littlecms.com
ma...@li...
----- Original Message -----
From: "John Gray" <gr...@ag...>
To: <lcm...@li...>
Sent: Sunday, June 24, 2001 11:47 AM
Subject: [Lcms-user] Embedded Profiles...
> Hello,
>
> I'm working on embedding profiles into the jpegs.
>
> I see the routines to embed profiles generally take a buffer, and len.
> Is there a way to generate this from a open profile handle, or do I need
> to get this from either an existing file or a profile I read out of image.
>
> I have the handle handy at the time of write. I was hoping to generate
> what I need from the handle.
>
> Thanks,
>
> John
>
> --
> John Gray gr...@ag...
> AgoraNet, Inc. (302) 224-2475
> 102 E. Main Street, Suite 303 (302) 224-2552 (fax)
> Newark, De 19711 http://www.agora-net.com
>
>
> _______________________________________________
> Lcms-user mailing list
> Lcm...@li...
> http://lists.sourceforge.net/lists/listinfo/lcms-user
>
>
|
|
From: John G. <gr...@ag...> - 2001-06-24 15:06:27
|
Hello, I'm working on embedding profiles into the jpegs. I see the routines to embed profiles generally take a buffer, and len. Is there a way to generate this from a open profile handle, or do I need to get this from either an existing file or a profile I read out of image. I have the handle handy at the time of write. I was hoping to generate what I need from the handle. Thanks, John -- John Gray gr...@ag... AgoraNet, Inc. (302) 224-2475 102 E. Main Street, Suite 303 (302) 224-2552 (fax) Newark, De 19711 http://www.agora-net.com |
|
From: <ma...@li...> - 2001-06-21 18:13:04
|
Hi, > How difficult would it be to adapt this to Greyscale images using a > "grey-only" colorspace ICC profile? Grayscale on input is already supported, just use /i<grayprofile>. However, only PHOTOMETRIC_MINISBLACK files will be correctly translated.PHOTOMETRIC_MINISWHITE will be reversed. On output, unfortunately, TIFFICC doesn't work. This is because lcms (at least in its 1.07 incarnation) doesn't support gray profiles for output. The difficulty resides in the way the CMM should interpret a transform between RGB (or CMYK) and a gray profile... Should give Y? Luminance? and how relates this with white/black points? We are working on this, and expect rev 1.08 will support output grayscale profiles, and reversed components as well. If you only need gray to gray, I can send preliminar sources that does this translation. If you want to extract grayscale information of a color image ... well, this will take a couple of months. Martí Maria The little cms project http://www.littlecms.com ma...@li... ----- Original Message ----- From: "Borden, Brian" <bri...@ve...> To: <in...@li...> Sent: Thursday, June 21, 2001 1:24 PM Subject: TIFFICC > > This is an excellent piece of work. This will save me many hours of > manual CMYK TIFF conversions. > > We noticed that TIFFICC accepts only RGB, CMY, CMYK, and Lab. This raises > a new question: > > How difficult would it be to adapt this to Greyscale images using a > "grey-only" colorspace ICC profile? > > > Brian Borden > Verizon Directories Corp. > Verizon Place > DFW Airport, TX 75261 > (972) 453-7628 > > |
|
From: <ma...@li...> - 2001-06-20 09:18:39
|
Hi, This depends heavely on what camera.icc is doing. Probably is using D65 as white point. Is this a profile created for your specific camera or a generic one for this camera model? Besides, do you have tried absolute colorimetric intent? For dealing with numbers seems more appropiate that perceptual one. Also, what illuminant (lamp) are you using? D65 is near daylight... lcmslabi.icm is just a identity profile, that is, dumps contents of PCS to output. The dE induced by the CMM is very low, about 0.004 but of course profiles are not perfect at all. A dE below 4 can be regarded as "very good" on cameras. On monitors, numbers are somehow better, and dE < 2 can be reached without excessive problems. Marti. ----- Original Message ----- From: "Bernardo Pucci" <cyb...@ti...> To: "Martí Maria" <ma...@li...> Sent: Wednesday, June 20, 2001 4:56 AM Subject: You said.... > Dear Maria, > thank you for your kindness. > > But I have a last problem, you said "lcmslabi.icm is using D50", but. > for a test I shoot the Macbeth ColorChecker to provide a camera image that > I > save for the profiling target, I use the lcms with > inputprofile="camera.icc" (with perceptual intent) and with > outprofile="lcmsLabi.icm", so for deltaE_Lab's measures I ought to use the > Macbeth's > Lab value that are tabulate for D50. > But I don't understand because I obtain a best result when I use D65 > Lab's values instead of when I use D50 Lab's values. > > Which is a good value for deltaE_Lab (that you have tried with lcms)? > > I hoping to hear from you soon. > Bye Bernardo > > > > > > |
|
From: <ma...@li...> - 2001-06-19 18:14:41
|
Hi, First try to locate a good cmyk profile, Photoshop comes with some excellent ones, but these are copyrighted. Then just create a transform from this cmyk profile to any RGB profile. (sRGB, for example). Call cmsDoTransform() and let lcms do all translation. There is a example called simple.c on the basic transform procedure. All this stuff can be done in about 7 lines of code. Remember to use TYPE_CMYK_8 on input Martí Maria The little cms project http://www.littlecms.com ma...@li... ----- Original Message ----- From: "Eads, Jesse" <JE...@co...> To: <in...@li...> Sent: Tuesday, June 19, 2001 12:15 PM Subject: Converting values? > Great project, but do you guys know in what direction I should start for > converting CMYK values to RGB values? Or does anyone have any code > examples. > > This is an awesome project and thanks to Marti for sharing it! > > > |
|
From: <ma...@li...> - 2001-06-19 15:18:32
|
Hi Bernardo, > Which is the color appearance model implemented in lcms? None. The appearance model is embedded into profiles. Each profile is responsible of any corrections form its specific viewing conditions to the profile connection space (PCS) Appearance models like CIECAM97s can be found on profilers, instead of CMM. We are for now working on this subject :-) > Which are the techniques for colorimetric corrections in lcms? It depends of intent used. On perceptual ones, the CMM is not adding any correction, since is using the "dumb cmm/smart profile" approach. In absolute colorimetric intents, there is a black point/white point linear scaling, as suggested by current icc spec. So, mainly no correction at all. But there is a function, cmsCreateRGBProfile() that builds profiles in the fly. This one (and only this one) is using a simplified Bradford transform for chromatic adaptation. > When I use your lcmslabi.icm as output profile, Which is the illuminant (D50 > or D65) for the obtained lab values? lcmslabi.icm is using D50. This white point is widely used on prepress and other programs (PhotoShop, for example). Note also that only absolute colorimetric intents will keep source profile white point unchanged. Marti. ----- Original Message ----- From: "Bernardo Pucci" <cyb...@ti...> To: <in...@li...> Sent: Tuesday, June 19, 2001 11:34 AM Subject: I should like .. > Dear Maria, > I' m Bernardo the italian student.You'll remember? > I should like to ask you 3 questions. > Which is the color appearance model implemented in lcms? > Which are the techniques for colorimetric corrections in lcms? > When I use your lcmslabi.icm as output profile, Which is the illuminant (D50 > or D65) for the obtained lab values? > > Thanks and I hoping to hear from you soon. > Bye Bernardo > > > > |
|
From: <ma...@li...> - 2001-06-19 13:34:39
|
Humm... this message is shown when the file is located but not recognized as a valid icc profile. I'm puzzled because the chances of such error are very few, the error is raised on lcmsio1.c, function is ICCFileOpen() line 250. Then, this function reads header, and checks for magic number. If number is not proper, returns such error. Perhaps the best way would be to do a debug trace on this routine... or a couple of printf() to point the exact source of error. Martí. ----- Original Message ----- From: "Jonathan Wall" <JW...@mm...> To: "Mart¡ Maria" <ma...@li...> Cc: <lcm...@li...> Sent: Tuesday, June 19, 2001 9:07 AM Subject: RE: [Lcms-user] testcms fails with Error #12288; Bad file format Marti, Thanks for the quick reply but unfortunately it didn't solve the problem. I re-downloaded the .tar.gz file from the lcms website (filesize 242443 bytes) just in case. I believe Alphas are little endian but I tried with the big endian toggle anyway and it gave exactly the same error output. I also tried using the makefile instead of install.gcc, again with and without the big endian toggle, and I always get the same error message. Using the makefile means I compile with the bundled 'cc' compiler rather than gcc. I also tried 'USE_FLOAT' rather than 'USE_C' (leaving big endian NOT defined) without any success. Any further thoughts? Jonathan. |
|
From: Jonathan W. <JW...@mm...> - 2001-06-19 12:30:59
|
Marti,
Thanks for the quick reply but unfortunately it didn't solve the problem.
I re-downloaded the .tar.gz file from the lcms website (filesize 242443
bytes) just in case.
I believe Alphas are little endian but I tried with the big endian toggle
anyway and it gave exactly the same error output. I also tried using the
makefile instead of install.gcc, again with and without the big endian
toggle, and I always get the same error message. Using the makefile means I
compile with the bundled 'cc' compiler rather than gcc.
I also tried 'USE_FLOAT' rather than 'USE_C' (leaving big endian NOT
defined) without any success.
Any further thoughts?
Jonathan.
=3D=3D=3D=3D=3D Original Message from MAIL@INTERNET (Mart=ED Maria)
{ma...@li...} at 19/06/01 17:59
>Hi,
>
>Is this machine big endian? If so... is the USE_BIG_ENDIAN
>toggle on lcms.h set? Do you have tried makefile?
>
>Seems like math is working, but the profile reading fails, assure
>file lcmslabi.icm is not corrupted.. but i guess all comes from
>endian stuff.
>
>Hope this helps
>Mart=ED.
>
>
>----- Original Message -----
>From: "Jonathan Wall" <JW...@mm...>
>To: <lcm...@li...>
>Sent: Tuesday, June 19, 2001 8:03 AM
>Subject: [Lcms-user] testcms fails with Error #12288; Bad file format
>
>
>> Hi there,
>>
>> I am using a DEC Alpha with Digital Unix 4.0D and gcc 2.95.3. I have
>> compiled lcms with the lcms-1.07.tar.gz distribution using a modified
>> install.gcc script. No other files have been changed. The script is:
>>
>> echo '*********************************************************** '
>> echo 'This is really simple... No autoconf, no make, just build '
>> echo 'by brute force the static liblcms.a library and place it '
>> echo 'on /usr/lib and icc34.h, lcms.h on /usr/include. '
>> echo 'You should take a look on lcms.h to set toggles properly '
>> echo 'before running this dumb script! '
>> echo '*********************************************************** '
>> echo 'Wait ...'
>> cd src
>> gcc -g -O2 -c *.c
>> ar cru liblcms.a *.o
>> BASEDIR=3D/usr/disk1/system/software/apps
>> cp liblcms.a $BASEDIR/lib
>> cp lcms.h $BASEDIR/include
>> cp icc34.h $BASEDIR/include
>> ranlib $BASEDIR/lib/liblcms.a
>> cd ..
>> echo 'Building testbed...'
>> cd testbed
>> gcc -I../src -g -O2 testcms.c $BASEDIR/lib/liblcms.a -o testcms -lm
>> echo 'done!'
>>
>> The compilation completes sucessfully (as far as I can tell) but when I
>run
>> the testcms program I get the following output:
>>
>> little cms testbed. ver 1.2 build Jun 19 2001 12:04:02
>>
>> Testing fixed point: 2.8848960205 =3D 2.8848
>> 0.437499269828536 =3D 0.4375
>> Testing fixed scaling...Ok!
>> Testing linear interpolation ...Ok! 1349946 tics
>> Testing descending tables (linear interpolation) ...Ok!
>> Emulating sRGB from primaries & White point:
>>
>> sRGB final matrix is:
>> [ 0.436066 0.385147 0.143066 ]
>> [ 0.222488 0.716873 0.060608 ]
>> [ 0.013916 0.097076 0.714096 ]
>>
>> lcms calculated matrix is:
>> [ 0.436066 0.385114 0.143105 ]
>> [ 0.222493 0.716923 0.060627 ]
>> [ 0.0139346 0.0970567 0.714108 ]
>>
>> Testing CIELab conversion:
>> lcms: Error #12288; Bad file format
>>
>> What is the problem here? Hopefully someone can provide an explanation.
>>
>> Thanks in advance,
>>
>> Jonathan.
>>
>>
>>
>> J.M.Wall, Engineer, CFD Simulation Group.
>>
>> Mott MacDonald Limited
>> Registered in England No. 1243967
>> Registered office St Anne House
>> Wellesley Road, Croydon CR9 2UL
>> Tel: +44 (0)20 8774 2382
>> Fax: +44 (0)20 8681 5706
>> Email: jw...@mm...
>>
>>
>> _______________________________________________
>> Lcms-user mailing list
>> Lcm...@li...
>> http://lists.sourceforge.net/lists/listinfo/lcms-user
>>
>>
J.M.Wall, Engineer, CFD Simulation Group.
Mott MacDonald Limited
Registered in England No. 1243967
Registered office St Anne House
Wellesley Road, Croydon CR9 2UL
Tel: +44 (0)20 8774 2382
Fax: +44 (0)20 8681 5706
Email: jw...@mm...
|
|
From: <ma...@li...> - 2001-06-19 11:40:25
|
Hi, Is this machine big endian? If so... is the USE_BIG_ENDIAN toggle on lcms.h set? Do you have tried makefile? Seems like math is working, but the profile reading fails, assure file lcmslabi.icm is not corrupted.. but i guess all comes from endian stuff. Hope this helps Martí. ----- Original Message ----- From: "Jonathan Wall" <JW...@mm...> To: <lcm...@li...> Sent: Tuesday, June 19, 2001 8:03 AM Subject: [Lcms-user] testcms fails with Error #12288; Bad file format > Hi there, > > I am using a DEC Alpha with Digital Unix 4.0D and gcc 2.95.3. I have > compiled lcms with the lcms-1.07.tar.gz distribution using a modified > install.gcc script. No other files have been changed. The script is: > > echo '*********************************************************** ' > echo 'This is really simple... No autoconf, no make, just build ' > echo 'by brute force the static liblcms.a library and place it ' > echo 'on /usr/lib and icc34.h, lcms.h on /usr/include. ' > echo 'You should take a look on lcms.h to set toggles properly ' > echo 'before running this dumb script! ' > echo '*********************************************************** ' > echo 'Wait ...' > cd src > gcc -g -O2 -c *.c > ar cru liblcms.a *.o > BASEDIR=/usr/disk1/system/software/apps > cp liblcms.a $BASEDIR/lib > cp lcms.h $BASEDIR/include > cp icc34.h $BASEDIR/include > ranlib $BASEDIR/lib/liblcms.a > cd .. > echo 'Building testbed...' > cd testbed > gcc -I../src -g -O2 testcms.c $BASEDIR/lib/liblcms.a -o testcms -lm > echo 'done!' > > The compilation completes sucessfully (as far as I can tell) but when I run > the testcms program I get the following output: > > little cms testbed. ver 1.2 build Jun 19 2001 12:04:02 > > Testing fixed point: 2.8848960205 = 2.8848 > 0.437499269828536 = 0.4375 > Testing fixed scaling...Ok! > Testing linear interpolation ...Ok! 1349946 tics > Testing descending tables (linear interpolation) ...Ok! > Emulating sRGB from primaries & White point: > > sRGB final matrix is: > [ 0.436066 0.385147 0.143066 ] > [ 0.222488 0.716873 0.060608 ] > [ 0.013916 0.097076 0.714096 ] > > lcms calculated matrix is: > [ 0.436066 0.385114 0.143105 ] > [ 0.222493 0.716923 0.060627 ] > [ 0.0139346 0.0970567 0.714108 ] > > Testing CIELab conversion: > lcms: Error #12288; Bad file format > > What is the problem here? Hopefully someone can provide an explanation. > > Thanks in advance, > > Jonathan. > > > > J.M.Wall, Engineer, CFD Simulation Group. > > Mott MacDonald Limited > Registered in England No. 1243967 > Registered office St Anne House > Wellesley Road, Croydon CR9 2UL > Tel: +44 (0)20 8774 2382 > Fax: +44 (0)20 8681 5706 > Email: jw...@mm... > > > _______________________________________________ > Lcms-user mailing list > Lcm...@li... > http://lists.sourceforge.net/lists/listinfo/lcms-user > > |