Click here to Skip to main content
15,891,905 members
Articles / Programming Languages / C#

Color Matrix Image Drawing Effects

Rate me:
Please Sign up or sign in to vote.
4.98/5 (20 votes)
26 Apr 2010CPOL9 min read 78K   7.4K   74  
This program demonstrates the graphics effects of drawing an image with a ColorMatrix.
<html>

<head>
<style>
BODY {
    color: #ffffff;
    foo: url("background.jpg");
	background-image: url("data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAAAABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgCAAIAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8kooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooprOB7mgB1BIHU1EXY+1NpXK5SUyDtk00yHsKZiii5XKhTI1G9vWm0UDshdzeppd7etNooCyHeY1OEvqKjooFyomEinvj607r0qvikBI6HFMTiWaKiWUj7wzUisG6GglqwtFFFAgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKCaOvApyrjrQA0KT1p4UCjcPUUm9fWgdmOopu9fWlDKf4qAsxSAetJtX+6PypwK+oP407FAiExqe1NMI7E1YwKTAoHzMrGFh0waYyleoNXMUhFFiudlKirTRqeo5qNoT/Cc/WkNSRDRSkFeoxSUFCUfSlpKBEiS44b86lByMiq1KrFTx0oIcSxRSIwYcUtMkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprMKa7ZOBTaTZSjcfvPbik5PUk0gpaRdrBS4pQKcBQK43FJipMUEUBcjoyR0JFOIppoGKJXHfP1p6zj+IYqI02i4cqLaurdDmnVSpyyuvfI96dyeTsWsUhGKYkyt14PvUtMlqwwgEcjNRPD3X8qnI9KbQCdioQQcHrSVbZQwwRUEkZXnqKRalciopaSgYAlTkVOjBh71AaRSVORQS0WqKRGDDIpaZAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUyRscDrTzwKVFxyetAIhVGPaniI9yKmpQKViuZkYh9/0p3lL6mpKKLC5mMEYHrS7adRTsFxu33pCpp9FAXImU+lRmrNIVB6ilYakVTTTVlogehxULxsO2fpSsUmhlIaWkNBQlPSRk6Hj0plFMZbSVW4PBp5FUaljlK8HkUGbh2J6KRWDDKmlpkEMkXUr+VQmrlRSR5zjrSLUu5XpDS0GgYqNtbParA5qrUsLfwn8KCWiWiiimSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRSMdozQAoGTTyQvUgVXMhxgcU089aRah3LBlUeppPP/wBn9ahopXHyom849gKUSn0FQilouFkTiTPanBqgBpwNFxWJsilqLNJup3FYmoqHzCKcJR3GKLi5WSUUgIPQ5paYhrIrdRz61BJCRyvIqzRQNSaKJ4PNJV10VxyPxqvJEy8jkUjRSTIqKKKChVJU5BxViOQNweDVaigTVy5SNUcUvZvzqU9KZk1YhkTdyOtQVbqKVM8jrSGmQUA4ORQaKBllTkAilqKA8EVLTICiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqKU5OPSpagJySaCorUSiiikaiilptLSAUU4Gm0UCH0ZpoNLmgVh2aM02jNAWFzSUZppNAC5I6HmpEmI+9yKiooC1y2jq3Q/hTqo55yKmjnI4fketMlw7FiikUhhkHIpaZBFJCG5Xg1WYFTgjBq9TXQOMH86ClK25Sop8iFDg/gaZSNQqaKTHyt07GoaKBNXLVIajif8AhP4VIaZk1YglXuPxqOrB6VA4wfakNMWM4YVYqqKsqcqDQJi0UUUxBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACOcIagqWX7v41FSLiFFFFBoFFFFADqKbS5pALRmiigQZozRRQAUUUmaAFpDRSUDCiiimA5WKnKmrMcofg8NVSiglxuX6KrxTdn/OrFMzasIyhhgjIqrLGUPqOxq3SMAVIPSgalYo0U+RNh9u1MpGm4VNG+4YPUVDQDg5FBLVyY0xhkU8HIzTTTMyHoaniPyfSopB3qSE8EUinqSUUUUyQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCObtUdPm6imUjSOwUUUUFhRRRQAUUUUAFLmkooAXNGaSigAooooAKKKKACiiigAooooAKlhl2cH7v8qiooE1cvg5GR0pGqtDJsOD92rBOenSmZNWGsoYYNVnUq2DVqmSruX3HSgcXYrUlKaSkWORsHHY081CalByBQRJCEZGKdD3pDToxyaZI+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCKbtTKkm6CoxSNI7BRRRQUFFFFAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACpYX2nB6VFRQJq5cpGqOF8jaeo6U89aZk1YhmX+IfjUVWm6YNVmG0kUiosbTkPOKbQDgg0AyQ9akTpUfepV6UyBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGyj5DUIqwwyCKrUmXFi0UZooLCiiigYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIUHByKsKdwzVbNPibBx2NBMkSmopRkZ9KkJphpmZDSGlPBxTaRZMnIFTDpUUI4FS0yAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKgkG1z71PUcy5XPpQNEVFJS0i7i5opKKBi0UmaXNAwoozRmgAooooAKKKKACiijNABRRRmgAoozRmgAopKKBC5pKKM0BcKTNFFAiUHIBoNMQ9RSk0zNjH60lObpSIMmkUixEMKKdQBgYopkhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUHkUUUAVnG1iKSp5l3LkdRVekWmLS5pKKBi0UlGaAFopM0uaACijNFA7hRRRQAUUUUAFFGaTNAC0UmaKBC0ZpKKACikooEFJRRQAq9afTB1FPzTJYHpUkS4GaSNc9alHFAgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqCZMHI6VPQRkYNAIqUZp0ibT7UykUOoptLmgYtFJmigBaKKKACiiigAooooAKKKSgBaKTNFAXFpM0lFABRRRQIKKKKBCjrUiLk0xBk1MMDgUwHjjpS0gpaBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA1gCMGq7rtPtVk0xqAK9FOZfSm0igooooAKKKKACiiigAooooAKKKKACiiigLhRRRQIKKKKAClAzSqvrTqYCjjgU5aaKctAh4pwpopwoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEppp5ppoAjNMIzUhFNNAEZBFJUlIQDSGMopxWkxQAlFFFABRRRTAKKKKACiilxQAlFOC0oAoAaATTwAKKKBBRRRQAop600U8CgBwpaQUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUlLQaAGEUwipaaRQBHSU4ikxQAlFFFABgUm0UtFACbaNvvS0UAJt96NopaKADAooooAKKKKACiiloASnAUAU4CgAAp4pAKUUAKKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==");
}

.bg { background-color: #505050;}
.cm1 { background-color: #606050;}
.cm2 { background-color: #506050;}
.cm3 { background-color: #505050;}
.fgr { color: #ff0000; }
.fgg { color: #00ff00; }
.fgb { color: #0000ff; }
.LIw { color:yellow; }
LI { color:White; }
H2 { color:Orange; }
.or { color:Orange; }
.bu { color:Blue; }

</style>

<title>ColorMatrix Help v1.2 (March 2010)</title>
</head>

<BODY bgcolor="#404040" vlink="#10f010" hlink="#80ff80" alink="#80ff00" link=#ffffff>
<a name=top>

<table>
<tr>
  <td> 
    <b>Author: </b><span class="or">lang.dennis<b>@</b>comcast.net</span>
    <b>Linkedin: </b><span class="or">http://www.linkedin.com/pub/1/119/293 </span> <br>
    <b>Home Page: </b><a href="http://home.comcast.net/~lang.dennis/index.html"> 
    http://home.comcast.net/~lang.dennis</a>
</table>

<p>
<hr>
<p>
<table>
<tr><td>
<table frame="box">
  <tr>
   <td>
      <!- img alt="colormatrix" src="colormatrix48.png" ->
      <img src="data:image/png;base64,
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
dwAAAABJRU5ErkJggg==" alt="colormatrix48" />

   </td>
  </tr>
</table>
<td>
<h2>C# - ColorMatrix v1.1</h2>
</table>

<p>

  This C# application demonstrates the effect of using the ColorMatrix operator on an image.
  This program contains several sample matrix filters which you can select and modify.
  The top portion of the program interface contains three images.  A background image, an overlay and the result of
  applying the color matrix on the overlay rendered on top of the background image.


  Each of the three panels display their image over a checkerboard background to make it easier to see
  partial transparent areas (alpha < 255). The bottom section of the interface shows the active
  color matrix filter on the left and a gallery of pre-built filters on the right.


<p>
  <center>
  <!- img src=main-screen.png -> 
  <img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAegAAAFaCAMAAADijD5AAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF
AQECAAAmAAA3EA4nFxcmGBU1DjACGyIrKBMFJB0yNCwRNDYpAABOAQNuGSFZEDB1JR1JMjFSMDNr
A08AB24ALEwUMk8tKXQFK2svOVFON0pmOWxMPmZqUAwBTwcyRzsWRTwjbgwAbi4Jaj8kQhddUBFi
QDxEQjxmS0IcTkouRHcNUXEubUgWZVYqcmc2T1VNTVVtWmVQUWtrZVpKaVpoa2dRb3FwAAGHAASV
BRiHBBmYAAqoAA24ARapABy8EiaWACS+KzqYITanABrNAB3rBCXMACX3Jh3OJRv4Ij7HN0acOkyn
HkLwMUrLLk3tP2TwSDyfQTTbUlaHTlqhUWaQU22uYluYZFe4cmuIb26rT1PGUVfxVGrQSmjrZlnB
d3bLZnnqCIoADK4ALI8CNosrMqwAO4tCEMUAAOQAMcoASJcKTYQxUK0JVqsnYZc3ZbgUbbYoSJNT
VZBwdZRWdIJ7ca1Oea5nUNABVuIAbM8ReccmcucIeM1WXoWIXoC3bIeOa420ZKCReKyucJfJeIru
eKTYfarhkQ4Ajy8ErgIAsy8EuTIskEoDjlMpnGMGjWo4sk8Mq08ls2sJrXUzg1ROhnhJinhvp1hG
q3NNuHt+zwYAyi8A5w4A7icD5T08zE4A024JyXci5lEB5Eo76nIA5mku5lFA5mZL7Hdqg3WUh3ur
g3nLuoobtoQ0mIlPl49njKJdk6p0q5VWqZxvrqBcsaVtgtwditMuiOsWl+ktoOs7jtNNktBpmeNL
pN1TrNxqpuZPqPZs1ogRzIwqzqMw8Y8C55gm+KYN56sqz5VMyY9w0KdMyrx364dy77tF+sQ6ysB9
wOd++sxR88hvl4uIl4+ymaSZiLy7po6JqJyivLSPraemlYvRm5L1k6TVg6zmp5vYo5f+sbLJs7D8
iMC9ss6RusuwtsXJuMX1w4WCwrmSyLq0+ayZ9a+qw7zNw7z+0MiW0MqsxueN1Ous49qa4tyj5+Gz
1dPIzsz73PDC3eDt4tzG7enQ/v38AAAAAAAAD3edPAAAAQB0Uk5T////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////AFP3ByUAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My4zNqnn4iUAAFOkSURB
VHhe7b0NfBzHdeA50joKApCrgwGSphwuSO5mzYkEzBDwjCQmIqWjibswEfd2BFIYRQ4N0zytaSbS
xlJkyZGBNSjzI9KKlhZcH2Edaa8vPopn4iwcoji0k4gMVk7i5DbOjEnNYESB3NgytCdjZNJAlsDv
d+/VV1d1V3VXzweJgebhY2b6a6rqX+/Vq1fV1ZEbN2zcuGVLd10WXwls2bJlM8jGjRvvuuv2yNI7
N9wFpIng5oUpkNi6mEpg8+YHClT2AcR97P2DGzc+MEFkcPDOpUsjS24H0Hf90i9t2ILo61KLJfDg
x7Zt24YWacvg3YWP0vdbfv3eB/+Prw6jHD16goC+a+O/+Ju/+Zs/+GfhQVO7EFpCG43Q3/AeO2Hi
o0gX8G7J3n2BvP+N7u5NgxNf5aR/fPvSyNI77rrn/7zy3/7wP/3HJVA8D+7cgoUEak/k1+7eeK9T
aPdK77c8QLY/CIffOzj4a/Sgeyce3HIv3eHIFrzmg7AVT3nwAagaoUGXVp/eM7Q3F5hCA+gthW0X
5lEQ9PBX574+fPTK148S0L+ycf+Xv/zlr/9/f7Bq88ZCfNPNWD7zS2kpDaY2vkXevgUu28Z7m0XZ
3TubwfcX8MCdmaWzm8iendl7JnZm3aDfnx4YvCX76/fOZu+C1/tgd510RSuhGzQ20m8R0MNfn//D
q1eOHv3xHQT0QQD95f/9S6s2b55fsnnzvuzg5vmb33jj7n0Xt+7Lbplfem//G/fOpwYvbr2UnXjg
0j2b731jy8X/sTeDuDbNL928eedM4eL7Ydv2NED+773ZjZvhjLtnByZ+7eIb9yHTC/HZm3dm74Y9
+FoK5hJqxnvplEI32mpsmIlG47sCBQ2kgTOAvj1y+8bN/+wgvD+4FiAjt/ml83fO92YG+/dl7rqQ
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"
alt="main-screen" />
</center>


<p>
<h2>Program Features include:</h2>
<div>
  <blockquote class="bg">
    <li> Three quick image load buttons for the background and overlay image
    <li> Load user images into backgroud or overlay
    <li> Save final image
    <li> Edit color matrix
    <li> Select one or more matrix cells and use slider bar to modify selections and see results
    <li> Save and Load color matrix with image.
    <li> Select from sample filters
    <li> Load additional sample filters.
    <li> Spinning "about" dialog on open and close (eye candy)
  </blockquote>
</div>

Here is a code fragment which shows how you can call <b>DrawImage</b> with a <span class="or">ColorMatrix</span>.

  <blockquote class="bg">
  <pre><quote>
    float gamma = 1.0f;     // no change in gamma
    ImageAttributes imageAttributes = new ImageAttributes();
    imageAttributes.ClearColorMatrix();
    imageAttributes.SetColorMatrix(new <span class="or">ColorMatrix</span>(m_f2Array), 
        ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
    imageAttributes.SetGamma(gamma, ColorAdjustType.Bitmap);

    Rectangle rect = new Rectangle(Point.Empty, image.Size);
    g.<b>DrawImage</b>(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, imageAttributes);

  </pre></quote>
  </blockquote>
<p>
As an image is rendered using the color matrix, each color (Red, Green, Blue, Alpha) is multiple by the color matrix.
The right column of the matrix is not used.  The bottom row is used to add a value to the computed color.  
Think of it as an offset.  
<p>
Before appling the matrix, the input source colors are scale from their native range of 0..255 to a range of 0..1.
The scale is reversed to produce the final destination colors.
The final colors are truncate to their native range of 0..255.
<p>
The color matrix can have negative numbers and numbers greater than 1. 

<p>
<h2>Modify Color Matrix </h2>

To change the color matrix, click on the cell you want to change and enter a new value.
The typical value is in the range of -1.0 to 1.0, thou any value is allowed.
If you hold the control key down, you can select multiple cells and use the slider bar to adjust all of them together.
The track bar will adjust the selected grid cells between the lower value in the left numeric box and the upper value in the right numeric box.
<p>
<center>
<!- img src="edit-cells.png" alt="edit-cells" ->
<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAd0AAAEnCAMAAADb6mkjAAAAAXNSR0IArs4c6QAAAARnQU1BAACx
jwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRF
AAAACAAAEQAAIgAAMQAAADtzFk1+QwAAVAAAZQAAeAAAeB89YCVIfkJ6cW9kJVeEPWO4AEbVMWrF
XlKZSlysTWGFSG6QSnGTVX2iZE+TcUiHbn6IcoONd4iSZ4iieZSpf525frPfebjma8z+dMDvcsT0
etH+hAAAlgAAjhoyrAAAtgAAphQovSE9nTFciztuhD50mDRiqitQu110zgAA2gAA3RAexB030xUo
3DA75gAA5wsV7h8c9gEC8QYM9g8O/gAA/AoJ9g0Q8xUT8hsZ/RER/BoZ6Rwk5i8r6yQh6CAo6Som
4ycw5DQw4Tk09Scn/SEg+Ckm+yko8TEu+jMv9TIx9Dw8/TAw+To2/Tg41zZE+EE8z0FR109I1VNM
0llSxU5iy2ZdyG5kxHZrwH1y7VVP61hX9EZG801N/UBA+ElD/khI9lBK81VS9FhS9l9Y/lBQ/VhY
62Jb9mZe7mtr63d1+mNj9XNr9Hty/XBw/n19qXaUsWqFjoJgpZdwvIV5uqt+xI4qyZEq254v3qAv
46Qw+LM13IJ44oF384J584l/+sFX+8t1gJKenJyZh5qmmI6xkJm/n66skaayn7K+uY2BtpKFsZuN
oIOjoaGSrqKUrKiZo660srGts7q5h6TMga3Yr7/Ij8rjicf+iNT5k8b+mNXxtsTMvs3ZrcX3qtjt
ot/+tsv3ttjqutD7tOX+25iM3p6ewLCE16GV1q2k1Lyt17m56YmJ5ZST/YuL85GG8pGI8ZiO/Zqa
6aaZ8aCW8Kec56Sk57Wt77Wp772v5ra18K6h9q+s/qen/6+v/ry8ysa31cW30NC/2dC25cKz5cO7
5Mm57sS27sW47cu9xMTBwM/dz9HFwNna0s7I1dHD0dHN29fN09PSwMD/zdzkxtX71d7k0N78wP/A
xuHk1+Xg2eP62PH+4sXF4tfG4t7N7NPF7NrL4d3V/svL/tvb5eLb4+jd6+HS6OXe6+nY8eHc4ODg
6ebg6+rl7Ozq4+z94vT/8u3i8fHr/v7+AAAAiqZHCgAAAQB0Uk5T////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////AFP3ByUAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My4zNqnn4iUAACUNSURB
VHhe7Z0LfGRXWcCXvngoT6nig4IJcbH1HaqOtHAGSAas1hjbpksHOoW1bbrdsivdbDcZLb4qLzER
6EaiJEilBduignRjibSuG3dT6gtQuzhrS7Us3SbBdYkUp/Pz+87rvu89555778y9uefXXzo7c57f
/3zfeX333C3HylBcCWwpbtPKlh0r6Ra5E5R0S7pFlkCR21bqbkm3yBIoctuY7m6UoYASOMbnzAVs
WtmkjZJukTuBL93nP9/TZJ+vWJzn8wAf8B8hsgrJwi9lSF60yOCSQgsqMkxP21ToqjMLJawpdBHd
m4x+Ewo/AGFoQ4qI3Y+uWzOSoRusb/75B9LlPwTXSrMbFRErb1MoXWYB+R+uLUw9LcsoRcn1lv0k
YjgisqjMkjs/cFWU+co4LLpvibRmLENXeVbuQsVtHUK2SdbFW6nC8LboHn0QgiUtYfy4EO2ydFhG
MezKcVdaZy51Lirb13yA5tgEHklY8hIDu+0XUT9WO0lX1siRpyOKrR9gj7GmCaJiMinPFsWR53AU
YEq6Dx4VPdaBx47bkoNt3HPrrldsfpBcXcAi7Ezu7WxWyfba2OhavVJovTVG+ySxInlLzrkKA15B
96gNrrCLApxbKFJdbZrk1ECHQlMh8W/EvDqALjfNLuMQqLs2e+FO6eAd3BBp2O0WXnbYvOM9KunK
ltgHM4/aOeTOsblMrwTnYR+koQ6bIFO5kchZsm0Q5aOyNYEOUOKAKnpjFwUsa/CDgi4dce08xLDm
HKIsunbhy4Qe2+2ORXMzHHcZS9EJnTUyoOsed3OuuJF0bTNf2/RUmFlXb3CPt2Je7NNntObMzjmx
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
Y3sSVkR8+M5Wd3NkThOsqrUiQu9tXSz6e1W43mVTb1+6D7wvyXC7ZZmTzLbX8+o8JTqI8l6VL5Z4
dNl6yI/uH30pyrlY63cbXa10OY/c6cSi68GiT/fjd94Ne5Bn33030P24Z1b1vlaiN8bb6Caab49n
FoOuL5Y4dMUBEcD10P3yA9pniGEJbHQTzbfXM9O3zMBCBAuLPt3HrGzuvFOeACY4kbBnZaObUgk9
nq3yuOuLRZ+uq9vz892UhFTSVT0B9MXipqvv48F6V0p0P/Ieule18SXYidyUgetuTCxJec2lJPoP
/MUtCPfLv/6r35dSCT2erZl3SI/Tbb3/HbdQuN/b4xTSql6x6SLe1uaFG3TxsiL0XtfdFuD9zU2r
ueIUQRGmJ1rv0229/9c2q1mWZ0QFptv63bQGtRzkG5crS5cD3c0Bg/SqWNJNT7bdz7kH6f5BhFQi
fjdM3jJMb5g8qni97Eu67r6kJz9PTzRMXtIN1+2UxZus+L1NSdQy5VB3uz+c9XANnJ2jB+n2sOzy
VrWSbt6I6dS3pKsjrbzFLenmjZhOfUu6OtLKW9ySbt6I6dS3pKsjrbzFLenmjZhOfUu6OtLKW9yS
bt6I6dS3pKsjrbzFLenmjZhOfUu6OtLKW9ySbt6I6dS3pKsjrbzFLenmjZhOfXuDrlktytTpSCAp
j9d0alfmaiYBSfeoWT5l6l6UgEW3xNuLfIzqdPTosWNbjmHYeLDEayTK3kt89MENSXfj6INlKJIE
AK6kSxW4DIWTALPMZSimBEq6xeTKWlXSLekWWQJFblupuyXdIkugyG0rdbekW2QJFLltpe6WdIss
gSK3rdTdkm6RJVDktpW6W2S6/w9QiNmxM312fAAAAABJRU5ErkJggg==" alt="edit-cell" />
</center>
<p>


If you change cells, press the <b>Apply</b> button to apply the new matrix to the overlay image.
If you use the slider bar, it will automatically apply the changes.

<h2>Load and Save</h2>
You can save your color matrix by pressing the <b>Save...</b> button. The matrix is saved as an XML file with a copy of the current result image.
I provide a <b>Filter</b> directory where sample filters are stored.

<h2> Color Matrix Math </h2>
<table>

The color matrix is applied to every pixel in the image as it is drawn into the graphics buffer.
The following figure shows how a single source pixel is converted to a single destination pixel.
Futher down I show specific sample matrix filters.
<p>
<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>
<tr>
  <td class="fgr"> Rs 
  <td class="fgg"> Gs 
  <td class="fgb"> Bs 
  <td> As 
</table>

<td>
*
<td class="cm2">
  
<table border=1>
<col bgcolor="#c06060">
<col bgcolor="#60c060">
<col bgcolor="#6060c0">
<col>
<col>
<tr>
  <td> Rr <td> Gr <td> Br <td> Ar <td> 0
<tr>
  <td> Rg <td> Gg <td> Bg <td> Ag <td> 0
<tr>
  <td> Rb <td> Gb <td> Bb <td> Ab <td> 0
<tr>
  <td> Ra <td> Ga <td> Ba <td> Aa <td> 0
<tr>
  <td> Ro <td> Go <td> Bo <td> Ao <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<col bgcolor="#a06060">
<col bgcolor="#60a060">
<col bgcolor="#6060a0">
<col>
<tr>
 <td class="fgr"> Rd <td class="fgg"> Gd <td class="fgb"> Bd <td> Ad 
</table>

</table>

Where:
<blockquote>
  Rd = (Rr * Rs) + (Rg + Gs) + (Rb * Bs) + (Ra * As) + Ro  <br>
  Gd = (Gr * Rs) + (Gg + Gs) + (Gb * Bs) + (Ga * As) + Bo  <br>
  Bd = (Br * Rs) + (Bg + Gs) + (Bb * Bs) + (Ba * As) + Go  <br>
  Ad = (Ar * Rs) + (Ag + Gs) + (Ab * Bs) + (Aa * As) + Ao  <br>
</blockquote>
<p>

<hr>
<p>
<h2> Unit matrix which leaves the image with its original colors.</h2>
<p>
In all of these examples, the color matrix is only applied to the 2nd image (overlay).
The first image is the background, second is the overlay, 
and third is the result of drawing the overlay with the color matrix over the background image.
<p>
The 4 numbers under the source column is a sample Red,Green,Blue,Alpha pixel value.
The 4 numbers under the destination column is the result of applying the matrix to the sample source pixel.

<table>

<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>

<tr>
  <td> 10 <td> 20 <td> 30 <td> 40 
</table>

<td>
*
<td class="cm2">
  
<table border=1>
<tr>
  <td> 1 <td> 0 <td> 0 <td> 0 <td> 0
<tr>                 
  <td> 0 <td> 1 <td> 0 <td> 0 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 1 <td> 0 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 0 <td> 1 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 0 <td> 0 <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<tr>
 <td> 10 <td> 20 <td> 30 <td> 40 
</table>


<td>
 &nbsp;
<td>

<table frame="box">
<tr>
 <td> Background
 <td>
 <td> Overlay
 <td>
 <td> Bg + Overlay(colorMatrix)

<tr>
<td>
 <!- img src="unit-bg.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKC
QASTgCqWs6naaNplxqGoyiG1gUu7n0r5r1j4pal481C5j0yQ2WgwvsyD80v4frk/lVwpuewm7H0P
feKtDsW23OqWykcYVt38s0WHirQr+TZa6nbO5OAC23P54r5sR4FwEtllb+/L85P51HcC3kQ+ZAkR
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" alt="unit-bg" />




<td>
 +
<td>
 <!- img src="unit-over.jpg" width=128 height=128->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgBVWDEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAD0ghgAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
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" 
alt="unit-over" />


<td>
=
<td>
 <!- img src="unit-dest.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
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"
alt="unit-dest" />
</table>
</table>


<hr>
<p>
<h2>Example of the unit matrix which shifts colors. </h2>
Red becomes Green, Green becomes Blue and Blue becomes Red. 
<table>

<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>

<tr>
 <td> 10 <td> 20 <td> 30 <td> 40 
</table>

<td>
*
<td class="cm2">
  
<table border=1>
<tr>
  <td> 0 <td> 1 <td> 0 <td> 0 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 1 <td> 0 <td> 0
<tr>                 
  <td> 1 <td> 0 <td> 0 <td> 0 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 0 <td> 1 <td> 0
<tr>                 
  <td> 0 <td> 0 <td> 0 <td> 0 <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<tr>
 <td> 30 <td> 10 <td> 20 <td> 40
</table>

<td>


<table frame="box">
<tr>
 <td> Background
 <td>
 <td> Overlay
 <td>
 <td> Bg + Overlay(colorMatrix)
<tr>
<td>
 <!- img src="unit-bg.jpg" width=128 height=128 ->
<img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKC
QASTgCqWs6naaNplxqGoyiG1gUu7n0r5r1j4pal481C5j0yQ2WgwvsyD80v4frk/lVwpuewm7H0P
feKtDsW23OqWykcYVt38s0WHirQr+TZa6nbO5OAC23P54r5sR4FwEtllb+/L85P51HcC3kQ+ZAkR
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" alt="unit-bg" />
<td>
 +
<td>
 <!- img src="unit-over.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgBVWDEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAD0ghgAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
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"
alt="unit-over" />

<td>
=
<td>
 <!- img src="rgb-shift-dest.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK4XxdrdxquoS+G9AnaFkA/tK/jPNshH+qj
P/PVh3/hHPUipfHPiaeC5XQPD7r/AGzOm6WcjctjEf8Alow7uf4V7nk8DnM0e0ttH09LSzDbASzO
53PI55Z2PdieSa7aFHlXtJb9F+v+X+W+M53fKjV8N6m2jXkGiahK8lpKdmn3UrFj0/1DserAfdY/
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
2Q==" alt="rgb-shift-dest" />

</table>
</table>



<hr>
<p>
<h2>Example to exclude all colors but green and invert green magnitude. </h2>

<table>

<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>

<tr>
 <td> 10 <td> 20 <td> 30 <td> 40 
</table>

<td>
*
<td class="cm2">
  
<table border=1 width="100">
<tr align="right">
  <td> 0 <td> 0 <td> 0 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> -1 <td> 0 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 0 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 0 <td> 1 <td> 0
<tr align="right">                 
  <td> 0 <td> 1 <td> 0 <td> 0 <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<tr>
 <td> 0 <td> 245 <td> 00 <td> 40
</table>

<td>


<table frame="box">
<tr>
 <td> Background
 <td>
 <td> Overlay
 <td>
 <td> Bg + Overlay(colorMatrix)
<tr>
<td>
  <!- img src="unit-bg.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKC
QASTgCqWs6naaNplxqGoyiG1gUu7n0r5r1j4pal481C5j0yQ2WgwvsyD80v4frk/lVwpuewm7H0P
feKtDsW23OqWykcYVt38s0WHirQr+TZa6nbO5OAC23P54r5sR4FwEtllb+/L85P51HcC3kQ+ZAkR
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" alt="unit-bg" />




<td>
 +
<td>
 <!- img src="unit-over.jpg" width=128 height=128->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgBVWDEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAD0ghgAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
ONyMOecEehB7EdQau+HdWkeX+zdRfN4i5ilPH2hB3/3h3H4jg8FGsk+R/L/L/IKVRJ8j+X+R0FFF
Fdh0hRRRQAUUUUAFFFFABRRRQAVz/irXzpaR2liqzarcg+TGeiL3kf0UfqeBU/ijXotDslbZ595M
Slvbg4Mjf0UdSe1cLYLJHJNd30vn6hcndNL29lUdlHQCuHFYnk9yD1/L/gnLiK/L7kd/y/4Jradb
LZxNmRpriVvMmmf70jnqT/QdhVwMc1RjnBA5qUSjNeTKuoqyOPmSVkWt1U9Qg+0xLtdopo2DxSp9
6Nh0I/zyMipRJmo3bg1g8SS5XR0HhnW/7TheC6CxajbgCaMdGHZ1/wBk/oeK2681u1mSaK8sZBFe
wHMbHow7q3qp7/n1Fdv4e1iHWrETxAxzIdk0LH5o39D7eh7ivZwGOVdckn7y/E7cNiOf3Jb/AJmn
RRRXpHWFFFFABRRRQAVl+I9btNA0x7y8JPOyKJfvyueiqPU//XrUr558QeIZPEHiua4bUVj+zs0M
Fu1uWWEZwcHdyTjk/wBK4sdi1hafN1ZzYrEexjdbs6JLq5vL6bU9UYNfTDAUH5YU7Rr7ep7mntdc
dawRFeqYw2qWpMnCg2zf/FVnT6lLb30Ns11Bcby27y4mTGB6knvXzccbTqO0ZXbPH9tc7OK94HNW
0vASOa45LzgHNXo73gEmoqyIlUsdXHc89aeZxjrXJHWo0bCHe3t0qNtYmfdhgo9BXk1sVGL7mDxc
VodNNc4B5qhHqk+k6impWHzOBtmhzgTJ6H39D2+lcDqGtq10LeW8uFlYbgqwlxjJHXcPQ08Qbrfz
Gu5wvqbY/wDxVb061Wm41Fp21QRrVNJRX4n0fo2p2usadDe2Mm+GQd+Cp7qR2Iq7Xh3w01CbRfFM
NlHeSS218Qslu0BADY4cHPB9fUfhj3GvtsBi1i6Sn16n0WFr+3p8zWvUKKKK7TpCiiigAr51ufhH
4sXXtQuLd7P7PLcSSRnzyDtLEjIx6GvoqgnFc2JwtPEx5ahhXw8K6SkfPsnw18aeduBtiEXC/wCk
DrXP6p4S1zwvLb3OuiHbKSkZSXec45r6bmnVB1rxr496gBbaQueN8rfkFH9a8uvleHw9N1Ibo8/E
YGlRpucb3RwbaikURZ247e9V21KS4UZbCDooNcr9qeVyWP0HpViC5IUjNeBXTnoeHVk5aHVx3H3T
mrKXHzYzXJpfEKOauR3+SvNedPDM5HBnT+DvDNz4m16f7JJbo1vHlvOYjI3dsA/3q9Jl8Bam0cEQ
ls9ituf525/8drkvghdhPEl1k8SW8v6NF/8AFV7vHKHHBr6bC5LhsXQhUq3v6n02CwdKrQjKW557
4e8E6lZeKLfUbyW0MEbMxVHYt90gdV9cV6NRRXuYPBUsFD2dLbc9OjRjRXLAKKKK6zUKKKKAA1Tu
p9gNXDUE1uJOtAHO3d4xJHNeMfHeYtJoa5/57k/+Q699k0xG54rwT9oeIQaxo0a/88ZD+bD/AArh
zH/d5fL8zix/8CXy/M8qjHzHFOUkFhTrdcvUxhO44r5Vy1PmGVAx2mpBMwVTT1hJyMU4wHyulDaE
2jv/AIQ3JXWtw6iOZf8Avryj/wCyV7tpt8xwDmvDPgdCJfEbxv0Zwo/GOU/+y19Dw6YkeCK+nyv/
AHdH02W/wEXIJN6g1NTI4wgwKfXoneFFFFABRRRQAUUUUANkOFr5y/aFk83xVpsf9y1J/Nz/AIV9
F3BxGa+bPjiwk8aW/P3bNR/4+9edmkrYd/I4MxdqDPPrZf3ozWnHBuNUol2uDWvbMMivjqsnuj5e
oyqLXBNSJbAoRirjEBqSN1DYrD2kmc/Mzovg4DB4ygXoDOCf+/M4/rX0mhytfNfw2fy/GSEdBtb/
AMeCf+z19IwHMYr7PJZc2G+Z9ZlLvh0SUUUV6x6YUUUUAFFFFABRRRQBXvTiI18y/FyTzPG0v+zA
g/mf619K6m2IGr5n+KD6bH4vna/1CWCV4kKotvvG3kZzuHcGvMzaLlQsu55+ZJyo2Xc5LOMGrEc+
MVHFJokpwurzZ97Q/wDxVaVvp+mSgbdY/O1P/wAVXys6bXxHzsqT6laS4zg0wXGGBzWgLDTHZ1Gs
D5Op+ynH/oVVjbaST/yGD/4Cn/4qs1TRPsWbvw+uMeKfd0jA/wDAiE/0r6bsW3QrXzD4NOlWniO1
ZL+W5lkZY0RLfbzuUgkk9Btr6V0eTdAv0r6nJlai15n0OVq1JrzNKiiivYPTCiiigAooooAKKKKA
KGqoWhYLXivj/wAKw6tdCa6sxLKgKq2SCB6cGveGUMORVSbTreX78YNROCmrMicFJWZ8rf8ACGLE
/wC7sSP+BN/jViPw5cRjCWzD86+mjodif+WK0n9h2P8AzxWud4OlLeK+4xeFpveK+4+ZR4bnCsBb
NhuvJqMeFpMj/RT+Z/xr6e/sKx/54rR/YVj/AM8hS+pUv5V9yF9Vp/yr7jwzwf4Wjtr+K5FptmT7
rFicZ47mvcdEjZIFDDHFWItLtYj8kYFXEjVBhRiuinSjTVoqxtTpxgrRVh1FFFaGgUUUUAf/2Q==" 
alt="unit-over" />



<td>
=
<td>
 <!- img src="invert-green.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgCE/zEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAL8/wAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK8F/aO+MSeFLOXw94emDa3OuJ5kP8Ax7KR
0B/vn9B7nje+PnxYg8BaQ1hpkiSeIblP3a8H7Op/jYevoPxPofhrULue/vJru8lea4lYu7uSSxJy
STWUpX91GM5cz5UfXP7NHxi/t+2h8LeJrgf2tCu20uHP/Hwo/gJ/vjt6j36/RFfl3aXE1ndRXFtI
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
hVQVkPaUmmFiaSiuk6wooooA/9k=" alt="invert" />


</table>
</table>


<hr>
<p>
<h2>Example matrix to blend 50% of overlay image using alpha. </h2>
When the overlay is drawn on top of the background, the alpha of the overlay controls how much of the 
overlay colors is stored in the destination pixel.  When the alpha is less than 100% (native color value of 255)
the destination pixel is calculated as followes:
<blockQuote>
    destColor = overlayColor * alphaPercent + backgroundColr * (100% - alphaPercent)  
    <p>
    Example with Alpha=60%:<br>
        <table border=1>
        <tr><td>     <td>Overlay    <td> Background <td>Equation <td>Result
        <tr><td>Red  <td> 10        <td> 20         <td> 10*0.6 + 20*0.4 <td> 14
        <tr><td>Green<td> 20        <td> 20         <td> 20*0.6 + 20*0.4 <td> 20
        <tr><td>Blue <td> 30        <td> 20         <td> 30*0.6 + 20*0.4 <td> 26
        </table> 
    An overlay color(10,20,30) blended at 60% on top of a gray color(20,20,20) becomes (14,20,26)
</blockquote>

<table>

<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>

<tr>
 <td> 10 <td> 20 <td> 30 <td> 40 
</table>

<td>
*
<td class="cm2">
  
<table border=1 width="100">
<tr align="right">
  <td> 1 <td> 0 <td> 0 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 1 <td> 0 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 1 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 0 <td> 0.5 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 0 <td> 0 <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<tr>
 <td> 10 <td> 20 <td> 30 <td> 20
</table>

<td>


<table frame="box">
<tr>
 <td> Background
 <td>
 <td> Overlay
 <td>
 <td> Bg + Overlay(colorMatrix)
<tr>
<td>
  <!- img src="unit-bg.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKC
QASTgCqWs6naaNplxqGoyiG1gUu7n0r5r1j4pal481C5j0yQ2WgwvsyD80v4frk/lVwpuewm7H0P
feKtDsW23OqWykcYVt38s0WHirQr+TZa6nbO5OAC23P54r5sR4FwEtllb+/L85P51HcC3kQ+ZAkR
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" alt="unit-bg" />




<td>
 +
<td>
 <!- img src="unit-over.jpg" width=128 height=128->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgBVWDEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAD0ghgAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
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" 
alt="unit-over" />




<td>
=
<td>
 <!- img src="alpha50.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKy9QuXnlaztHKkf66UfwD+6P8AaP6U7U71
1cWloR9pYZZuoiX1Pv6CobeNLeIRx5x1JPJJ7k+9Yznd8qMpSvoiaymNtIttMxMbcQuxz/wEn19D
3+vXSrImVZYyjjKmp9Ou2LfZrlszKMq//PRfX6jv+dEJ68rCMraM0KKKK2NQooooAKKKKACiiigA
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
ktiRpSaYWJpKKYwooooA/9k=" alt="alpha50" />

</table>
</table>



<hr>
<h2>Grey scale </h2>
By setting the upper 3x3 section of the color matrix to the same value, it produces a grey scale image.  
All three color channels (red, green, blue) are set to the sum of the source channels (Rs+Gs+Bs).
To reduce saturation (color exceeding maximum range), I included a -0.5 in the offset row.  
By using a negative offset I reduce the intensity.
<blockquote>
    (Red * 1 + Blue * 1 + Green * 1) -0.5 * 256 = destination_color_channel
<br>
    100 + 20 + 30 - 128 = 22
</blockquote>



<table>

<tr>
 <td>
   Source
 <td>
 <td>
   Matrix
 <td>
 <td>
   Destination


<tr>
  <td class="cm1">

<table border=1>

<tr>
 <td> 100 <td> 20 <td> 30 <td> 40 
</table>

<td>
*
<td class="cm2">
  
<table border=1 width="140">
<tr align="right">
  <td> 1 <td> 1 <td> 1 <td> 0 <td> 0
<tr align="right">                 
  <td> 1 <td> 1 <td> 1 <td> 0 <td> 0
<tr align="right">                 
  <td> 1 <td> 1 <td> 1 <td> 0 <td> 0
<tr align="right">                 
  <td> 0 <td> 0 <td> 0 <td> 1 <td> 0
<tr align="right">                 
  <td>-0.5<td>-0.5<td>-0.5<td> 0 <td> 0
</table>

<td>
 =
<td class="cm3">
 
<table border=1>
<tr>
 <td> 22 <td> 22 <td> 22 <td> 40
</table>

<td>


<table frame="box">
<tr>
 <td> Background
 <td>
 <td> Overlay
 <td>
 <td> Bg + Overlay(colorMatrix)
<tr>
<td>
 <!- img src="unit-bg.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKC
QASTgCqWs6naaNplxqGoyiG1gUu7n0r5r1j4pal481C5j0yQ2WgwvsyD80v4frk/lVwpuewm7H0P
feKtDsW23OqWykcYVt38s0WHirQr+TZa6nbO5OAC23P54r5sR4FwEtllb+/L85P51HcC3kQ+ZAkR
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" alt="unit-bg" />

<td>
 +
<td>
 <!- img src="unit-over.jpg" width=128 height=128->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgBVWDEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAD0ghgAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK5fxBqU1/dyaNpUrRlcfbbpDzCp/gU/wB8
j/vkc9cVJ4n1qWOYaVpLD+0ZV3SS4ytrGf4z6sf4R+J4FVNOtodPtFt7cHaMlmY5Z2PJZj3JPJNc
datzPkjt1/y/z/q3NVqcz5Ft1/yLmjXrabcRaZdyM1u/y2k7nJ/65MT1PoT1HHUc9HXJXccd3bPD
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" 
alt="unit-over" />



<td>
=
<td>
 <!- img src="grey.jpg" width=128 height=128 ->
 <img src="data:image/jpg;base64,
/9j/4AAQSkZJRgABAQEAYABgAAD/4QCGRXhpZgAASUkqAAgAAAAGABoBBQABAAAAVgAAABsBBQAB
AAAAXgAAACgBAwABAAAAAgAAADEBAgAQAAAAZgAAAAEDBQABAAAAdgAAAAMDAQABAAAAAAAAAAAA
AABgAAAAAQAAAGAAAAABAAAAUGFpbnQuTkVUIHYzLjM2AKCGAQCPsQAA/9sAQwAGBAUGBQQGBgUG
BwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sA
QwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgo/8AAEQgAgACAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
GBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKT
lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
9/j5+v/aAAwDAQACEQMRAD8A+qaKKKACiiigAooooAK53VbqbWL2XRtKmeFI8C+vI+sIPPlIf+eh
Hf8AhBz1IqTXNRuJrwaNozhdQdd805G5bSM/xEd3P8K/ieBWnpWn2+l2MdpaKViTuxyzseSzHuxO
ST3JoAo2bto9xFp87M1lIdlpM7Fip/55OTyT/dY9RweRltmob21hvbWS3uUEkUgwyn+YPYg8gjkG
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" alt="grey" />

</table>
</table>

<p>
<a href=#top> Top </a>
<p>

<hr>
<table>
<tr>
  <td> 
    <b>Author: </b><span class="or">lang.dennis<b>@</b>comcast.net</span>
    <b>Linkedin: </b><span class="or">http://www.linkedin.com/pub/1/119/293 </span> <br>
    <b>Home Page: </b><a href="http://home.comcast.net/~lang.dennis/index.html"> 
    http://home.comcast.net/~lang.dennis</a>
</table>

<a name=top>
<p>


</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) IBM / WSI
United States United States
I love C/C++ for its speed and power and C#/Visual Studio for quick application development.

Unix/Linux is my favorite OS

Android Studio is the best IDE I have used.

Comments and Discussions