-
Notifications
You must be signed in to change notification settings - Fork 111
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
WYSIWYG Printing colours #2299
Comments
If it works well, I consider it beneficial. The biggest problem I see with the current appearance of 100% blue, for some mapping projects I even adjust its definition to achieve better readability on the display. |
Fair enough.
Which environoment did you test these formulas with? This is what I learned in the past:
The CMYK/RGB conversion isn't part of Mapper's source code, but implemented in the Qt framework. This doesn't mean we couldn't integrate improvements. I'm just stating the fact. |
As an illustration. Top left: OO Mapper (current master), The patch.
IMHO, it makes sense to make this change configurable as the differences in map appearance are substantial. In any case, I like the proposal. Thanks! |
And a trivial test:
Screencast.From.2024-11-25.11-43-01.mp4Mapper should be consistent with itself. :-) |
@lpechacek Which GDAL binaries did you use in that test? I wonder how much this step is subject to the PDF backend in GDAL, possibly pulling in lcms2. @arenol I would really appreciate some reference. |
GDAL 3.10 on openSUSE Tumbleweed. But the result is roughly the same with a recent Windows build from Mapper CI. My guess is that Poppler interprets the PDF for GDAL on Linux. The PDF has the same color appearance in Evince, Inkscape, QGIS and Scribus, AFAICT. I don't think that we need to perform full-blown colors management here. Adjust the colors so that they don't hurt user's eyes that much. My choice would be an attempt on replicating the OCAD calculation as users are used to it, so it can be considered as a "industry standard" and therefore widely accepted. |
For there reference, this is the calculation:
The constants were obtained like this:
|
As a side note, this is how the color appearance issue was solved in Purple Pen: https://groups.io/g/purple-pen/topic/purple_pen_colors_different/87079064 (TL;DR: "Comparing colors on screen is really unimportant and a waste of time.") As to my current knowledge, the IOF CMYK colors are in fact unspecified. It seems that there is no "standard CMYK" color model, so the CIE values of the individual process colors are not defined. I think that no one would be surprised these days that we need a geodetic datum to interpret spatial coordinates. The next step is to learn specifying color model along with the color component values. |
I really wish the magic formulas from the original post would be backed by an external reference. Similar to us not using magic numbers in the source code.
"Device-dependent" might be a sufficient identification of the desired CMYK color space, with 100% Cyan expected to be printed as 100% pure Cyan, regardless of the actual printer. In need for color management and a device-independent CMYK color space, I would probably choose "ISO Coated v2 300% (ECI)" for European print shops. Combine this with "sRGB" for the computer screen. Pick representative pairs e.g. from gamutmap.com, and you have input for deriving simple formulas as a a proxy for proper color transformations. Not far away from the other two proposals, but with sound vendor-neutral reference points.
This can be modified to quickly demonstrate the effect, but for proper wiring, we may need to know whether we are rendering to a RGB screen, to a RGB printer driver, or to a CMKY PDF. If the custom CMYK-to-RGB transformation is enforced too early, the color might undergo another unmanaged RGB-to-CMYK transformation, leading to unexpected results. |
The colours, particularly the cyan colour, is far from realistic compared to the printing colours.
Here's an algorithm that will, reasoably accurate, convert CMYK to RGB that are within the printing gammut:
(c, m, y and k) are in the range 0 to 1, and so are will the rgb's be:
The text was updated successfully, but these errors were encountered: