Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Converting an rgb color to a cymk color following an icc profile #6

Open
asturur opened this issue Jul 10, 2020 · 3 comments
Open

Converting an rgb color to a cymk color following an icc profile #6

asturur opened this issue Jul 10, 2020 · 3 comments
Labels

Comments

@asturur
Copy link

asturur commented Jul 10, 2020

I know this is a common question, i googled a bit i could not find anything.
I see there is a PR open that adds more parsing to this library, and i was wondering if those tags are somehow related to the color conversion.

If they are i'm willing to pick up the work where it was left and move forward.

I would kindly ask, if you know, if with some extra work this library can become a color converter using the information contained in the color profile.

thanks.

@lovell
Copy link
Owner

lovell commented Jul 10, 2020

This module is designed to parse profiles rather than provide any conversion logic.

http://www.littlecms.com/ is the "gold standard" for colour management.

The A2B and B2A tags contain look-up-tables (LUTs), which we can definitely expose - happy for a PR to do this.

Profiles usually relate to a specific colourspace, e.g. RGB or CMYK, rather than about conversion between them. Perhaps you need something like https://www.npmjs.com/package/color ?

@asturur
Copy link
Author

asturur commented Jul 10, 2020

Well maybe i miss some bit of knowledge.

My specific problem is convet rgb to cymk .... (<---not an issue) ... following the iso coated v2 300% profile (<--- this is the part i do not know how to do it )

I thought that the color profile include necessary information for this conversion to happen correctly, and i thought that extracting data from the color profile is part of the process.

I also thought that LUTs are how this happen.

How much i am far from the truth?

@Aminelahlou
Copy link

Aminelahlou commented Apr 27, 2023

https://www.color.org/icc32.pdf I think you need to read this specification document in order to understand what Mr lovell has said in his previous comment. Plus, I also would like would like to expose matrice tables that are used for conversion.
From everything that I have read, this is what I have understood:
CMYKVector = matriceMultiplication(conversionMatrice, rgb vector)
where rgbVector is 3 dimensional vector (i.e. one rgb pixel)
CmykVector is a 4 dimensional vector (i.e. one CMYK vector)
conversionMatrice is a 3x4 matrix which seems to be the A2B “tag” but that am not sure yet.

Also I am not even sure that we use a matrix and its inverse matrix for cmyk ==> rgb or rgb=> cmyk

i have also downloaded the official profile inspector from the icc organization https://www.color.org/profileinspector.xalter
But it is still very unclear for me how exactly this is working: is the matrix even constant for a given rgb pixel??

Well, i have just seen that this post is from july 2020 but I will just keep it here if anyone has the same questions or even answers!

edit: the mathematical model is explained in page 50 of the icc profile specification

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants