Skip to content

RGB -> CYMK, with consistent colors

6 messages · Martin Møller Skarbiniks Pedersen, Derek M Jones, Derek Jones +2 more

#
All,

I used the very useful colorspace package for the plots in my book
(pdf available here): http://knosof.co.uk/ESEUR/

The color makes the plots look great, on screen.
To get lots printed, the printer requires converting the images to use cmyk
(a common requirement for larger  printers, I'm told).  See page 11 here:
https://www.ingramspark.com/hubfs/downloads/file-creation-guide.pdf

No problem, the script below uses ghostscript to achieve this:

gs -o ESEUR-cmyk.pdf \
     -sDEVICE=pdfwrite \
     -sProcessColorModel=DeviceCMYK \
     -sColorConversionStrategy=CMYK \
     -sColorConversionStrategyForImages=CMYK \
      ESEUR.pdf

the problem is that the converted colors don't look nearly as
good.  For instance the cyan now looks blue, and prints as pure blue.

I can regenerate the images, and explicitly specify cmyk.  But using:

pdf.options(colormodel="cymk")

does not change anything.  The colors look remarkably similar to
those produced via the ghostview route.

I have been looking at color profiles and trying to find a
way of modifying an ICC profile (yes, it looks difficult).

Does anybody have any ideas for producing cmyk images that have
the same (or close enough) look as the RGB?
#
On Sun, 29 Nov 2020 at 14:26, Derek Jones <gmane at knosof.co.uk> wrote:
[...]
[...]
Have you tried printed a few pages in CMYK?

A monitor is based on mixing light using Red-Green-Blue. So it is not
possible for the monitor to show
CMYK which must be printed on paper to view correctly.

Regards
Martin
#
Martin,
Yes, I have printed some 'CMYK' pages.

The blue is very obviously not cyan, as compared to printing the
RGB version.
#
Martin,
Let me correct the last sentence.
The printed blue is obviously not cyan when printing 'rgb' and 'cmyk'
pages.

Somebody pointed out in an email that probably I am the only one who
is going to notice the difference, and he may be right.

My frustration is that the printer supports cyan as a base color.
I understand that rgb->cmyk involves lots of variables, and I'm hoping
that somebody will point me at one that allows me to tweak the output.

library("colorspace")

two_c=rainbow(2)

x=runif(20)
y=runif(20)

plot(x, y, col=two_c[2])


pdf(file="cmyk.pdf", colormodel="cmyk")
plot(x, y, col=two_c[2])
dev.off()
#
I had a long discussion on this topic with the Springer production
group when my book was in production.
Statistical Analysis and Data Display: An Intermediate Course with
Examples in R, second edition
Richard M. Heiberger and Burt Holland.
https://www.springer.com/gp/book/9781493921218

As I now understand it, the physical inks used in printing cannot
produce the same range of colors as the computer screens.
The issue is not the notation, but rather the underlying technology.

I chose to let the publisher make the conversion.  I looked at the set
of pdfs for your book, and to
anyone else but you, I think they would look fine in slightly different colors.

Rich
On Sun, Nov 29, 2020 at 8:26 AM Derek Jones <gmane at knosof.co.uk> wrote:
#
Hi.

CMYK and RGB are physically different concepts of colour mixing
(subtractive/additive) and the only way how to achieve good results is to
calibrate the monitor and the printer (which is hardly achievable in home
conditions). Usually DTP professionals are equipped for such kind of work.
Even then, the results could be slightly different as the whole colour space
is not achievable by only several (4 at least) pigments. And also colour is
not simple thing but basically a process involving light, target and person
who perceives it.

If you insist on achieving good printed results, the best way is to print it
and adjust colour(s) to be pleasing. However you cannot control others so if
anybody prints your book he hardly get the same result as you.

Cheers
Petr
version.