Color Mixing Tools: color2drop

Please, visit the Color Mixing Tools page for downloading information.

Introduction:

This program has been created to find paint mixing recipes corresponding to a target color defined by chromatic coordinates. For example, having an image on the computer, it is enough to read the RGB coordinates of a pixel and the program converts them into a paint mixing recipe. This paint recipe indicates the number of parts/drops of a paint base that needs to be mixed with other bases. The RGB coordinates are not device independent, however, CIE Lab values or the Munsell notation (Hue Value/Chroma) may also be used to define the color. The Munsell space defined in this system is based on cubic interpolation of the Munsell Renotation Data and not on a simplified mathematical model, thus bringing us very close to human perception. The conversion from color coordinates to recipes is not unique like the conversion of paint recipes into color coordinates. Various recipes can provide the same color experience thanks to the phenomenon called metamerism. This program, therefore, chooses the recipe that minimizes the color error (defined by the DE*94 formula). However, if the color error is below the threshold requested by the user, this system minimizes the drops or the parts of paint. Furthermore, it is also possible to limit the number of paint bases to obtain the target color. This is particularly useful in cases when one tries to obtain the color of the reflection of an object. In this case, the use of various pigments in different areas of the painting creates unnatural effects with changing illumination (e.g.: daylight to artificial). Another reason for limiting the number of paint bases is simply when some of the bases parameterized in the system are not available to the painter.

Limitations: only opaque paints without fluorescent, metallic, glitter or other special effects can be mixed. In the recipe transparent colors may appear as well, but the recipes are valid ONLY if there are also opaque bases to make the overall recipe opaque.


Program Description:

This program has been written as a MATLAB script and compiled. For its execution it is necessary to have installed "MATLAB Component Runtime library (MCR)". After launching version 3.4 of the program, the following interface appears:


To obtain a paint recipe, first and foremost, it is necessary to define the target color (1). This can be done in RGB coordinates (2), assuming that the monitor is calibrated to White Point 6500K, CIE Lab (3), or in the Munsell notation (4) assuming an illuminant "C" (because the Munsell space is defined only for this illuminant). The Munsell space has been extended to the human eye gamut (thanks to the data provided by MCSL) through cubic interpolation of measured data and not by using simplified formulas. This is also why converting coordinates with Value less than 1 and above 9 or with Chroma below 2 is less precise compared to other regions of the color space. However, this reduced precision has no practical impact on the use of the system. The RGB and Lab triplettes can be defined by separating the numbers with space or comma. Moreover, the RGB coordinates can also be defined in hexadecimal format "# aa bb cc", where the hash sign indicates that 6 hexadecimal symbols together or separated by space or comma need to follow. The latter format was added to ensure compatibility with the various color pickers used around the world. The Munsell coordinates are classic ones, with or without the bar between Value and Chroma. The placement of Hues is as follows:


Since color perception depends also on the paint illumination (5), the incident light needs to be defined choosing from the list (6). 19 illumination spectra have been defined:


  • A: This lighting has a low color temperature and corresponds to indoor light, as for example a regular 100W bulb or a halogen one. This spectrum emphasizes the reds and yellows while depresses the blues, creating a "warm" light and reducing strongly the mixable colors (see the example on the drop2color page).
  • B: This light is similar to D50, corresponding to an outside daytime light.
  • C: This light is similar to D65, corresponding to cool outside daytime light, and is the reference for the Munsell space: so, lacking particular requirements this is the light to choose to paint mixing.
  • D50, D65, D75: These are lights with color temperatures that go from 5000K to 7500K and correspond to outside daylight. Calibrated monitors have the White Point set to 6500K (close to D65), while D50 is the industrial light reference for printed images. These are reasonably "white" lights, in the sense that they do not accentuate any spectrum region significantly. Nevertheless, D65 and, especially D75 lightly reinforce the blues creating "cool" light.
  • F1 to F12: These are fluorescent lights with significant spikes in the spectrum and they may create some strange color aberration effects, similar to what we experience when looking at the color of cars in underground parking lots. F10 is the spectrum of many energy saver lamps (Energetic FE 20 20W E27, or Osram Deluxstar 21W/860 Daylight) used as painting light because they are reasonably white and do not heat the environment significantly. If one uses this type of lighting, it is recommended to choose F10 as spectrum to mix the paint.

All these spectra can be visualized with drop2color as a function of wavelength.

"Light Strength" (7) refers to lighting intensity. 100% means that the illumination spectrum has an ideal intensity, while it can be lowered to take into account potential dim light. The percentage values are modified to the non linear response of the human eye: for example, a perfect white color with Munsell value 10, with "Light Strength" 50% will be perceived as value 5. This system calculates the paint recipe in such a way that the eye stimulus with low lighting is the desired one, but it is important to pay attention to the use of this option: by reducing light strength the white point gets lowered as well, squeezing the whole color space toward black and also loosing chroma of the mixable color gamut. In other words, colors lighter than poorly lighted pure white can not be mixed (of value 5 in the previous example) and many saturated colors will not be mixable (see the example on the drop2color page). If there are no particular reasons to reduce light strength, it is recommended to use value 100%.

The target color can be seen in the vertical rectangle (8). In case the color does not belong to the color gamut of the monitor (assumed to be the color gamut of the ideal RGB space), which may happen when Lab or Munsell coordinates are supplied, the word"Gamut" appears in red with black background in the center of the rectangle.

The allowed error in the conversion is defined in DE*94 in box (9). To explain briefly, DE*94 = 1 is approximately the perception threshold of the difference between two adjacent color samples, while in two paintings if locally DE*94 = 3, we struggle to perceive the color difference and the paintings seem identical to us. A value of 2 is a reasonable setting. You have to pay attention not to lower the error threshold too much, because you risk obtaining a recipe with millions of drops/parts. A recipe like that is unusable and incompatible with the physical limitations of the formulae and the measurement errors of the paint samples used to build the overall mixing system. This problem typically occurs when the color is on the border of the paint color gamut.

At this point, you have to select the paint brand (10) to calculate the paint recipe. You may also limit the paint base set (11) if not all the base colors of the chosen brand are available:

The paint bases colored red show a subset of bases, which allows for the mixing of at least 98% of the overall color gamut of the brand.

For each brand listed in the menu (10), there is the possibility to define which color bases are really of interest (or available). You may select/deselect single bases, or select/deselect them all with "Select All" or "Deselect All". Pay attention to the fact that at least one white and minimum three colors are necessary for the system to function properly. The "Reset" button allows you to recover the original selection that appeared when you opened the window. Finally,"Save & Exit" saves the current configuration.

There are two ways to calculate the recipes: using global optimization among all the selected bases (12), or calculating an individual recipe using up to 5 bases (13). It is worth noting that color2drop never needs more than 5 bases to mix a color, provided that the color is mixable of course. In general, 3 or 4 bases are enough to define the correct recipe.

Global Optimization:

When using global optimization you need to choose a reference white (14) that serves to guarantee the opacity of the recipe. This does not mean that this white paint actually will be included: in this case, you need to make sure that at least one of the bases is opaque, otherwise, the recipe will not be valid.

Checking box (15), however, extends the research space for the recipe calculation. Though from the practical point of view, this means tripling the processing time (which is not too long on recent computers), better results can be obtained in cases where the color to be mixed is close to the boundary of the mixable color space.

Pressing the button "Go" (16) starts the optimized calculation of the recipes. The button "Go" gets replaced by the word "wait" until the calculation is finished. The internal parameters of algorithms have been defined to complete the process within an average of 20 seconds on an Intel P4@2GHz processor. The tests show that the processing time may vary from 4 seconds to about a minute.

If there are no calculated recipes yet, or if the target color is too far from the mixable color space of a chosen brand, the image (20) is seen until the calculation starts and the first recipes start to appear. As the process advances, more and more possible recipes come up sorted by decreasing chromatic error and increasing overall drop/part count.

When the calculation of optimized recipes stops, the used time for the optimized calculation is shown in the text window and the following image appears:

Up to three recipes are shown (1) ordered by decreasing chromatic error or, if the allowed error condition is met, by increasing overall drop/part count. Each recipe indicates the bases to be mixed (2) and the respective drops/parts to be used (3). In addition, you can see the chromatic error with respect to the target color (4) and the color inconstancy index (CII) (5). CII is the chromatic error between the color of the paint lighted with spectrum 'A' compared to the lighting with spectrum 'D65'. If the error (4) is lower than the required threshold ("Allowed Error" in position (9) of the starting image), just as in this case, the recipes are arranged according to the increasing number of paint drops. In the processing phase, the first recipe is automatically selected with the "Select" (6) button, and its composition is written in the selectable space (7). This program enables you to transfer this composition with "copy and paste" to another application. The color of the selected recipe is also shown in the space MIX (8) and ROUND (9). In particular, in MIX (8) the exact equivalent of the full recipe is shown in chromatic coordinates without any optimization of the drops/parts, and the chromatic error between the mixed paint and the target color is reported in (10). The color of the selected recipe is shown in the top square (11) close to the target rectangle. If the color is not visible on the monitor, the word"Gamut" appears in red in the center of the square. In ROUND (9) the chromatic coordinates of the recipe with the optimization of the number of drops/parts are shown. These are the parts/drops shown in the recipe (3). In square (12) the chromatic error while in square (13) the color of the final recipe is shown. As the rectangle with the target color is adjacent to both squares (11) and (13), it is possible to measure the chromatic error visually and immediately. If one wants to control the placement of the color obtained from the selected recipe, it is possible to run drop2color by pressing button (14). This is useful for seeing the position of the target color (shown with a sphere covered with a gray net) and that of the mixed one (sphere of plain color) in Munsell space where the space of the mixable colors of the chosen brand is also seen in 3D. This way, it is also possible to control the sensibility of the resulting color with respect to the number of drops/parts by adding or removing a part/drop to/from each base.

Note: Munsell space presupposes lighting "C", therefore, these controls make sense only with this lighting. Otherwise, the error due to inconstancy with color lighting will seemingly shift the target color compared to the mixed one.

Usually, the bases with lower number of drops are the ones that influence greatly the target color; therefore, they need to be measured with special caution. From a practical point of view, it is recommended to raise the recipes so that the minimum number of drops/parts to add is at least 3 to reduce the variation of the drop/part dimensions (effectively it usually means tripling all doses).

Individual Recipe:

In box (1) up to five bases may be defined by selecting them from the menu (2) showing all defined bases for the chosen brand:


Alternatively, if there are calculated recipes already, the button "Load" (3) lets you load the bases of the selected recipe. When clicking on "Go", the recipe gets calculated and shown (5).

The button "About" (20) shows the information on the program with buttons that open related web pages and provides MATLAB licensing information (some parts of the document also apply to system use via the MCR libraries, like this one):


The version number of "Color Mixing Tools" that comes after the first point shows the number of paint brands codified in color2drop and drop2color. The number after the second point shows the number of databases defined in rs2color.

When pressing "Exit" (21) or closing the main window, some of the selected settings are saved, such as lighting, paint brands etc. In case of irrecoverable errors due to operating system malfunction (with Windows it may happen…), first you need to exit the application and then you can cancel the file "color2drop.ini" from the directory in which the program is found: the original configuration will be restored the next time the program is launched.

Clicking "web" (22) opens this web page.

In the lower right corner (23), the version number of the program is shown. The second number (in 3.x the number "x") indicates the number of paint brands codified in this system.


Notes:

When comparing the color on the monitor to the color of a paper sample, it is important to keep in mind the following:

  • The paint sample is supposed to be completely opaque in order not to reveal any background color or pattern.
  • The monitor needs to be set to White Point 6500K (as required by sRGB).
  • The painted paper needs to be lighted with the light chosen for the recipe calculation. This way the color on the monitor and on the paper will be identical.
  • Since the monitor emits light while paper reflects it, the color will be correct if the light is intense enough, otherwise, the color on the paper will seem too dark. Furthermore, despite having the correct colors, a painting will always be "duller" compared to an image on the monitor. This also means that usually it is not possible to obtain colors correctly with gray values equivalent to less than about 25%, due to the error in the measurement linked to the surface shine of the paint film. Moreover, colors that are too strong in blue are not obtainable with colors that reflect warm light like halogen ('A').
  • If you buy a paint set where the pigment to medium ratio was changed, the paint receipt will not be accurate anymore. The computed receipt can help you anyway, because you'll have to tune the ratio of a few bases to hit your goal, instead of choosing among all the bases you have trying to figure out the receipt from scratch!
  • Mixing a color for a target RGB or CIE Lab coordinate implies that the correspondence will necessarily be metameric. In artificial systems, the tristimulus coordinate conversion of the color spectrum occurs through standard observer curves, while the human eye uses cones. Consequently, individual differences create various conversions, which may result in a perception different from the target, depending on the individual.
  • If color2drop cannot find a recipe for the required target, it means that it is not possible to obtain that color with an opaque (buffered) color. Sometimes one gets close to the desired color using paint transparently or with overspray, but color2drop will not be useful for this. In fact, this system does not have codified parameters for transparent paint, for paint film order nor does it have information on backgrounds or supports.
  • If the studio in which one works is lit with halogen light or an incandescent lamp with transparent clear glass, then the spectrum to be used for mixing paint is "A". If energy saver lamps are used (for example, Energetic FE20 20W E27, or Osram Deluxstar 21W/860 Daylight), then the corresponding spectrum is F10.
  • The Munsell notation and the choice to draw the information in Munsell space is based on the fact that this system is strictly related to human color perception. Obviously, it is not the only color space with this property, but it is one of the best-known ones, even if it has known limitations. The Munsell space has been extended to the human eye gamut (thanks to data provided by MCSL) through cubic interpolation and not simplified formulas. That is why, the precision of coordinate transformations, from the perception point of view, is reduced to lightness values (Value) lower than 1 and higher than 9 or to saturation (Chroma) lower than 2. A significant advantage of this color space is that the complementary colors found through the Munsell space are very close to the color of the afterimage on the retina. In fact, having stared at a colored rectangle for 20 seconds and looking at a white surface afterwards, the color that our eyes perceive is the complementary color of the rectangle and it appears both as tonality, saturation, and brightness. If you want to learn more about this topic, there are various sites with useful information. The MCSL offers a lot of interesting questions and answers: F.A.Q.

For further notes and information, please check the Frequently Asked Question section of the Color Mixing Tools.


Application Examples:

Example 1: mixable colors

If I need a skin color with RGB coordinates [208, 119, 95] and I want to use primary Polycolors, color2drop calculates the following recipe with an allowed error 2: "018- Titanium White": (2) + "116-Primary Yellow": (6)+ "256-Primary Red-Magenta": (3), with 1.2DE94 error. When I click on "drop2color" under ROUND, I can see the position of the target color with respect to the mixed one:

The two colors are close. Looking at the result of color2drop, the MIX section tells me that the mixed error is 0. Therefore, the error in the ROUND section is related to the simplification that aims to reduce the number of paint parts. If I want to reduce the error, I only need to type a lower than 1.2DE error in the accepted error box and obtain a more accurate recipe. Obviously, this involves an increase in the number of paint parts, because this will be a recipe with more precise ratios. For example, typing in 1DE, I obtain: "018-Titanium White": (3)+"116-Primary Yellow": (9)+ " 256-Primary Red-Magenta"(4) with 0.6DE error. With this recipe drop2color shows me the following position:

The error is reduced a bit, but both recipes have the same meaning in practice. If you wanted to reduce the error further, just out of curiosity, you could set it to 0.5 and obtain the following image:

Here the error is zero, in fact, the target color and the mixed one overlap. It is important to note that the perfection of overlapping is absolutely useless, because the error introduced in the measurement of the paint quantity becomes dominant. The recipes get always finished off with the painter's eyes!


Example 2: non-mixable colors

If I need a color with Munsell coordinates 6.8G 6.6/9.0 and I want to use Polycolor primaries, color2drop gives me the following recipe with an allowed error 2DE*94: "018- Titanium White": (9)+ "116-Primary Yellow": (3)+ "400-Primary Blue-Cyan": (5), but the final error is 3DE. The allowed error, therefore, is not respected! Why?

If I want to understand it, it is enough to click on the "drop2color" button under ROUND. Drop2color shows me the position of the selected recipe with a uniform sphere and the position of the target color with a sphere covered with a gray net:


It is apparent that the target color is outside the mixable color space, but color2drop has created a recipe for a close mixable color. This is not necessarily the closest mixable color. Note that if the target color is too far from the mixable space, no recipe will be generated.


Example 3: variation in saturation or brightness of a color

There are various cases when one wants to desaturate a color while keeping the brightness, or darken/lighten the color keeping the saturation, and so on. A frequent issue is how to darken the color yellow without losing the hue or saturation. The first idea that comes to mind is to add black. However, adding black results in a desaturated olive green, missing completely the goal. (The reason why this happens is described in more detail on the drop2color web page.) The fact is that yellows have a relevant tinting strength below about 520nm and a weak one above, toward red. The consequence is that in the blue zone the mixed paint spectrum will be close to zero because both black and yellow have low reflectance. Furthermore, yellow raises the mixed reflectance curve in the green wavelengths. Lastly, black dominates at long wavelengths, creating a total spectrum with a rise only in the green region. With drop2color it is possible to visualize the spectrum for several yellow to black ratios in the mixture, providing a clear understanding of the phenomenon:


Consequently, the trajectory is not linear at all, and crosses the green zone, leaving the principal Munsell sector "Y":


How can we darken yellow then?

For instance, I select Yellow Primary Polycolor directly from the tube, to which the yellow sphere in the image corresponds. In order to see how this color is positioned in relation to the mixable color space from a perceptive point of view you can use drop2color. The coordinate of this yellow, according to the Munsell notation is: 4.1Y 8.7/12.5. If I draw the Y-PB section (Yellow - Purple Blue plane) in Munsell space, I get the following image:

The top yellow sphere indicates the position of the color yellow, when paint is used directly from the tube. You can see immediately that I cannot darken this color without losing saturation, because going down vertically I immediately exit the color gamut of the Polycolor primaries.

However, if I want to desaturate this yellow while maintaining the same brightness, it is enough to request color2drop to calculate the recipe at a coordinate with the same hue, value and reduced saturation (Chroma). Horizontally the chips are 2 chroma distance away from each other. One application could be to halve the saturation, bringing it to 6. The response of color2drop to the target 4.1Y 8.7/6 is: "018-Titanium White": (44) + "116-Primary Yellow":(13) + "256-Primary Red - Magenta":(1).

If I want to darken this color, it is enough to request the recipe only with modified value, reduced in this case, as for example 4.1Y 8.0/6. If I limit the mixing bases to white, yellow, and black, I obtain a recipe with an approximate 7DE error, because the mixed color turns green. If I add magenta to the list to counterbalance the green, I get the following answer: "018-Titanium White":( 353) + "116-Primary Yellow":(172) + "256-Primary Red - Magenta":(17) + "530-Black":(1). If I had asked for the optimized recipe directly, I would have got: "018-Titanium White":(115) + "116-Primary Yellow":(57) + "256-Primary Red - Magenta":(7) + "400-Primary Blue - Cyan":(1). The reason why this recipe does not contain black is because it is a "strong" color. If black were included it would require an increase in white parts for the recipe, a less optimal solution compared to the recipe described previously.

The color placement of the last two recipes is indicated in Munsell space by a sphere that covers the chip in the center of the second line from the top of the yellow zone:



Example 4: saturation without changing hue or value

Another example related to saturation of colors is when one wants to create color strings. For example, color strings can be obtained by a continuous trajectory starting from a color to its equivalent gray value, meaning, until complete desaturation without changing the level of brightness or hue. Our eyes are very sensible to brightness, but not so much to saturation. Therefore, some expertise is necessary to mix paint strings at constant value while changing saturation.

The common suggestion to mix simply with complementary color to desaturate a color is rather impractical and conceptually ambiguous: first of all, normally the complementary color has a completely different brightness compared to the starting color, making it impossible to maintain constant value. Secondly, often there are paint trajectory non linearities that make this method impractical, unless one is quite an expert in mixing every relevant color in the string in a substantially independent way. This is basically what seasoned painters do, but here I am trying to show how this can be done also with color2drop even if one has little painting experience.

For example, let us suppose that I want to desaturate the Golden Ochre of ETAC EFX500. The following images show how the careful selection of the complementary color allows for keeping the hue constant along the trajectory, but at the same time causes an inevitable drop in brightness from 6.4 to about 2.5:

The result obviously is not the desired one. However, the following general procedure is the correct one. Let me start from the Munsell coordinates of this color: 9.7YR 6.4/8.0. Mixing a neutral grey of value 6.4 I get a paint which when mixed at various proportions with ochre will let me keep both hue and value constant, changing only the saturation level. The more horizontal and uniform the spectrum of grey (and less variation in tinting strength as a function of wavelength), the less variation I will have in hue and value along the trajectory. Therefore, defining 9.7YR 6.4/0.0 as target, color2drop offers me the following grey recipe: 502-Titanium White":(9) + "508-Red Ochre":(1) + "509-Golden Ochre":(4) + "512-Wheeler Smoke":(1).

Using drop2color I can draw the trajectory between the starting pure ochre and the mixed gray:

There is a small variation in value and hue along the trajectory. It is due to the fact that the mixed gray is colored (its spectrum is not uniform) and it has a tinting strength which is not constant with wavelength compared to the Ochre paint. Nevertheless, from a practical point of view, it is very useful having to mix just two paints and obtain essentially only the variation of the color saturation as a function of the mixing ratio. In general, it is quite difficult to adjust the resulting color by eye to the various intermediate points along the trajectory to form a string varying the saturation, especially when the value is low (dark colors), and where our eyes are even less sensitive.

This method of desaturation is the base also for the Liquitex "Modular Color System", which has not been very successful due to the artists'lack of interest in studying color mixing systems seriously, despite the fact that these systems are easy to use. However, even today many paint brands provide Munsell color coordinates on paint tubes and bottles to help artists with paint mixing, based on the human perceptive system reducing the non linear effects along the trajectories. In general, the bigger the difference in value between starting and ending colors, the bigger the saturation and hue variation along trajectories. Therefore, learning to mix the equivalent grays is very important even if the painting is based on color strings!


Example 5: portrait

Suppose I want to paint an airbrush portrait using opaque colors. In order to obtain a delicate shading of the face I start with a light color (1), then gradually choose other colors (2) & (3) until the darkest one (4). Selecting the colors and the number of colors is obviously subjective, but in this example, I will show you a possible sequence. The sequence from the lightest color to the darkest is dictated by the necessity to minimize the chromatic variation related to overspray (very evident when titanium white is used due to its known "blue-shift") and it is more evident for light colors sprayed over dark ones compared to dark colors sprayed over light ones.

Point 1: RGB = [247 195 163] (color of the reflection on the cheek)

Using Pen Colors with a lighting defined by spectrum 'C', allowed error 2, the first calculated recipe by the system is: "1-White":(126) + "7-Carmine Red":(1) + "22-Primary Yellow":(4)

From a practical point of view, 126 white drops are too many because they exceed the necessary paint quantity for the reflection color in this portrait. The most practical solution is to mix the rest of the recipe in a small container, then to put the necessary amount of white in another small container (its quantity is dominant in the final color): at this point, only two paints need to be mixed (the first is the mix of Carmine Red and Primary Yellow, while the second is pure white paint). This can be done easily by adding the first paint in small quantity to the second one until the desired color is achieved by eye. Even if the quantity of white is large in this recipe, it is good to keep in mind that when acrylic paint dries it becomes darker, so a little more white is needed compared to what the eye would suggest. Another useful thing to remember is that one drop from the bottle causes a big variance in the paint quantity and there is a risk to end up far from the target color. Consequently, I would mix 3 drops of Red and 12 of Yellow, and then I would add a small quantity of this obtained orange to the white paint to define the final color. In fact, taking more drops from the

bottle makes the overall paint amount vary a lot less compared to when using a single drop.

Point 2: RGB = [224 155 116] (color of the lighted area of the cheek)

The first calculated recipe is: "1-White":(73) + "2-Lemon Yellow":(1) + "6-Vermillon":(4) + "20-Light Grey":(1)

Now there are two options. The first one is to use directly this recipe, where the quantity of paint for the face is reasonable. The second is to try to use the same bases used at Point 1. The latter choice is definitely preferable because it creates a harmonious surface, especially if the lighting changes and you want to look at the portrait both in natural and artificial light. Remember that paint mixing based on RGB coordinates is necessarily metameric! When pressing the button "Load", the recipe gets loaded into the specific list for mixing and Lemon Yellow can be substituted with Primary Yellow. In addition, Vermillon can be substituted with Carmine Red.

Upon clicking on the 'Go" button, the following recipe comes up: "1-White":(103) + "3-Permanent Yellow":(17) + "7-Carmine Red":(3) + "20-Light Grey":(1), with an error of 1.1DE. The number of drops has obviously increased, not dramatically though. At this point, I would definitely use this second recipe for the harmony it represents in the painting.

Point 3: RGB = [208 119 95] (base color of the cheek)

The first calculated recipe from this system is: "1-White":(19) + "7-Carmine Red":(1) + "16-Burnt Umber":(1) + "22-Primary Yellow":(3)

This recipe is good enough as it is, thanks to the sharing of pigments with previous points. In this case, I should mix at least 3 times more drops of paint in the recipe to have a sufficient amount of paint to cover the large areas in the portrait. Mixing a bit more paint is always a good idea anyway to avoid having to re-mix the paint if errors need to be corrected on the painting.

Point 4: RGB = [134 58 35] (shadow color)

The first calculated recipe is: "1-White":(1) + "2-Lemon Yellow":(1) + "6-Vermillon":(3) + "7-Carmine Red":(1) + "20-Light Grey":(1)

In this case, I would change the Lemon Yellow to Primary Yellow (the one I used in the first three points) and try to use Burnt Umber (used in the recipe of Point 3) instead of Light Gray to darken the resulting color. If the resulting drops were acceptable, I would definitely improve the harmony in the painting. The resulting recipe is: : "1-White":(1) + "6-Vermillon":(4) + "16-Burnt Umber":(3) + "22-Primary Yellow":(7), with an error of 0.7DE. This is definitely the solution I would use.

The substitution of Light Gray with Burnt Umber might seem illogical at first because at Point 2 I used Light Grey, but in reality it is preferable to have similar pigments shared among adjacent zones of the painting. Therefore, Point 4 needs to be harmonized with Point 3 first, and if possible, also with the others afterwards. For this reason, at this point I turn to Point 2 and try to substitute Light Gray with Burnt Umber in the final recipe. The resulting recipe is: "1-White":( 95) + "7-Carmine Red":(1) + "16-Burnt Umber":(3) + "22-Primary Yellow":(7), with an error of 0.7DE. This solution is in harmony with both Point 1 and Point 3, so this recipe becomes the final choice for Point 2.

Obviously, the need for pigments shared in adjacent areas is important for delicate shadings like what we have in a face, and it is a direct consequence of the phenomenon called metamerism. If one works on a painting with strong colors without shadings, sharing pigments is not an issue.

Final notes:

  • Reading the RGB coordinates to mix paint for a portrait does not make sense from a colorimetric point of view, as the RGB color space is device dependent and it is not absolute. Still, the paint mixed by color2drop using RGB coordinates leads to correct color relationships among adjacent areas. Therefore, it is the simplest mechanism to get useful information from a digital photo. Afterwards it is up to the painter to give the painting an artistic touch.
  • The idea to mix paint for a portrait in a completely automatic way is utopistic, given that the application of paint takes place manually based on the artist's perception and sensibility. In fact, color2drop is only an aid and cannot substitute the expert painters' skills. Since there are many inaccuracies also due to drop dimensions or paint parts, it is always necessary to adjust the final color by eye. To sum it up, the artist's skillfulness can in no way be replaced.


Example 6: reflections

Suppose you want to paint a classical seascape: a boat on the water. The following picture shows a close up of the boat with reflections. The goal is to paint the picture with opaque paint, so I choose buffered EFX500 colors.

Though I am focusing on the red of the boat, the same procedure can be repeated to the other parts of the picture. The red close to the white boat name has RGB coordinates [196, 17, 0]. Typing these numbers in color2drop, I can see that the corresponding Munsell coordinates are 8.7R 4/16. I try to get the recipe, but none comes up. This means that the target color is too far from the mixable colors. Clicking on drop2color, I can see that this is the case:

I observe that if the saturation level (chroma) were 10, I could mix this paint because I would re-enter the color space of this brand. In fact, with color2drop as a response to the target 8.7R 4/10 (RGB [169, 62, 49]), I obtain a valid recipe. This means that I have to desaturate the colors of this picture using a photo-retouching program. Using Photoshop and its Saturation/Brightness filter (with saturation-40 and brightness +6), I obtain the following image:

In this case, the red close to the boat name becomes RGB [165, 64, 52]. Color2drop provides the following recipe: "503-Naphthol Red":(2) + "507-Arylide Yellow":(13) + "509-Golden Ochre":(1). With the presence of opaque ochre the recipe is opaque, therefore valid. With drop2color I can see that this color is on the border of mixable colors, but that is fine because I successfully mixed the most saturated color of the boat:

Now, I want to get the recipe for the red of the boat reflected by the water. The color under the boat name, in the triangular area among the waves is RGB [111, 72, 68]. The third given recipe from color2drop is: "508-Red Ochre":( 12) + "509-Golden Ochre":(5) + "512-Wheeler Smoke":(1). I choose this recipe and not the first two ones in order to be able to share the ochre contained in the color of the boat. When trying to substitute Red Ochre with Naphthol Red used in the first recipe calculated above, I get a chromatic error. Since this does not work, I stay with the third recipe described above.

Verifying mixability is a common method with all saturated colors. The advantage of desaturating the whole picture with photo retouch programs is that the entire picture is effected and the relative ratios among adjacent colors are maintained. In fact, these ratios are necessary ingredients to get a photorealistic picture. Our visual system is equipped with many normalization mechanisms, which help us see correctly also pictures that have colors very different from reality, provided that the colors are correct relative to their surroundings.