I have just started to understand the subtractive colour model concept and have some questions in my mind about different scenarios. I know in the additive colour model colours are created by adding primary colours and in the subtractive colour model it is done by subtracting the primary colours. I also know that cyan subtracts red, magenta subtracts green, and yellow subtracts blue. My questions are more related to the mechanics of the mixing.

My question is with printers. I was first thinking that only 7 colours would be possible by overlapping different colour prints at a point. For example if cyan is printed on yellow it would create green as cyan would subtract red and yellow would subtract blue. But I would not be able to create a print reflecting let's say 25% red and 100% green. However I learnt the concept of half toning. Apparently the prints of different colours do not fully overlap and this allows some red and some green colours to be reflected.

However what I wonder is how the pure green colour can be made if different colour prints are not overlapping. If I have separate cyan and yellow dots wouldn't the region be reflecting also some red and blue?

THE SUMMARY: In printers how is (25% red and 100% green) produced and how is (100% green) produced.


There are many questions here. I will take on the color printer one:

In (inkjet) color printing, you define a superpixel on the page which for example could be divided up into 9 subpixels in a 3x3 array. To get almost any color you want for the superpixel, you populate the superpixel with anywhere from one to 9 spots of (for example) magenta, 1 to 9 spots of yellow, etc. subject to the paper's limiting capacity to accept drops of ink without excessive bleeding outside the boundaries of the superpixel.

Since that "laydown limit" for wet ink to bleed on a piece of paper will be significantly different for coated photo paper, uncoated copier paper, and transparency film, the firmware running in the background on the printer itself will invoke different superpixel laydown maxima depending on the paper type the printer is loaded with. Many printers contain optical sensors that "read" the paper, deduce what kind it is, and look up the right print parameters for it automatically.

If you print the magenta first and the yellow second, you will get a different shade of red than you would if you laid the yellow down first. This means that the printer has to shift into unidirectional printing when laying down a color image to prevent hue shifts that are caused by switching the laydown order on adjacent sweeps of the printhead left-to-right and right-to-left. Ordinarily you define a certain area-filling pattern within the superpixel for placing the colored dots in it so as to maximize the dynamic range of different shades that the superpixel can represent; which would also involve deliberately mapping the magenta dots onto the same locations as the yellow dots, to get the best red tone possible. This fill pattern is called ordered dithering.

If you happen to require a noninteger number of spots within the superpixel to get the exact shade of color you desire, then you "share the error" by putting down one extra color dot and leaving that same color dot out of the next-door superpixel in a process called error diffusion.

High-quality photo printers commonly use two different nozzle arrays for the cyan and magenta primary colors, which shoot two different dilutions of ink into each superpixel- significantly increasing the number of shades that can be rendered in a superpixel. The yellow primary is usually one dilution only, because the human eye's spatial resolution for yellow is low enough that the second yellow level isn't needed, and can be managed instead through error diffusion.

When black is needed in the print, the black print nozzle array is brought into play because the pure black ink produces a harder-hitting black than can be had by printing all the primaries on top of each other (which is called "process black"). Whenever the black printhead is active, a new set of laydown tables are looked up with the overall objectives of minimizing the ink load in the superpixel and correct color rendering.

The program inside the printer that manages all these factors is called the printer's writing system, and writing system design has become a well-defined engineering discipline within the digital printing field.

  • $\begingroup$ "If you print the magenta first and the yellow second, you will get a different shade of red than you would if you laid the yellow down first" — why is this? $\endgroup$ – Ruslan Feb 14 at 22:45
  • $\begingroup$ I understand from your answer that the same superpixels are populated by different colours. For example if I want a perfect green it may populate all subpixels first with yellow and populate them again with cyan. So all subpixels absorb blue and red resulting in green. But if I want to have a mixture like 25% red and 100% green it may populate all the subpixels with yellow (so I will not get any blue) and may populate %75 of the subpixels with cyan (so I will get 25% red). Have I understood it correctly? $\endgroup$ – Zalajbeg Feb 14 at 23:07
  • $\begingroup$ yes yes, you vary the ink laydown density for C, Y, and M within the superpixel and get the color you want. it is a complicated business... $\endgroup$ – niels nielsen Feb 15 at 1:56
  • $\begingroup$ Thanks for your explanation. Q1 is clear to me at the moment. My question has not been fully answered yet but your answer must be the accepted answer for the Q1. I don't expect the other questions to be expected. Can somebody guide me on if I can delete the remaining questions (maybe I can open another question with them?) and accept this as the answer= $\endgroup$ – Zalajbeg Feb 15 at 10:49
  • $\begingroup$ @Zalajbeg you can edit your question, see the Edit link below it (under the tags). $\endgroup$ – Ruslan Feb 15 at 11:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.