<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://commons.oreilly.com/wiki/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;action=history&amp;feed=atom</id>
		<title>SVG Essentials/Filters - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;action=history&amp;feed=atom"/>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;action=history"/>
		<updated>2013-05-18T15:34:47Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.11.0</generator>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=7376&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=7376&amp;oldid=prev"/>
				<updated>2008-03-07T13:40:50Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 13:40, 7 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=6041&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=6041&amp;oldid=prev"/>
				<updated>2008-03-07T12:51:41Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:51, 7 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 203:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 203:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;saturate&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;saturate&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 213:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 214:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;luminanceToAlpha&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;luminanceToAlpha&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 223:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 225:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== The feImage Filter ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== The feImage Filter ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 361:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 364:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If you are dividing the input spectrum into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; different sections, you must provide &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt;+1 items in &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt;, separated by whitespace or commas.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;If you are dividing the input spectrum into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; different sections, you must provide &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt;+1 items in &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt;, separated by whitespace or commas.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;discrete&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;discrete&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 386:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 390:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Dividing the input channel into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; sections requires &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; entries in the &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; attribute. ''Exception'': If you want to remap all the input values to a single output value, you must place that entry into &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; twice; thus, to set any input value of the blue channel to 0.5, you would say: &amp;lt;tt&amp;gt;&amp;lt;feFuncB type=&amp;quot;discrete&amp;quot; tableValues=&amp;quot;0.5 0.5&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Dividing the input channel into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; sections requires &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; entries in the &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; attribute. ''Exception'': If you want to remap all the input values to a single output value, you must place that entry into &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; twice; thus, to set any input value of the blue channel to 0.5, you would say: &amp;lt;tt&amp;gt;&amp;lt;feFuncB type=&amp;quot;discrete&amp;quot; tableValues=&amp;quot;0.5 0.5&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 449:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 454:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[SVG Essentials/Filters#svgess-CHP-10-FIG-15|Figure 10-15]] shows the combinations that we've described; the arithmetic blend is 50% of A and 50% of B.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[SVG Essentials/Filters#svgess-CHP-10-FIG-15|Figure 10-15]] shows the combinations that we've described; the arithmetic blend is 50% of A and 50% of B.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:3712:newid:6041 --&gt;
&lt;/table&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3712&amp;oldid=prev</id>
		<title>Evanlenz: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3712&amp;oldid=prev"/>
				<updated>2008-03-06T23:40:38Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:40, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Evanlenz</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3711&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3711&amp;oldid=prev"/>
				<updated>2008-03-06T23:33:32Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:33, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3253&amp;oldid=prev</id>
		<title>Evanlenz: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3253&amp;oldid=prev"/>
				<updated>2008-03-06T22:52:46Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:52, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Evanlenz</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3252&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=3252&amp;oldid=prev"/>
				<updated>2008-03-06T22:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:38, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2667&amp;oldid=prev</id>
		<title>Evanlenz: 1 revision(s)</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2667&amp;oldid=prev"/>
				<updated>2008-03-06T22:22:07Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:22, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Evanlenz</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2666&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2666&amp;oldid=prev"/>
				<updated>2008-03-06T22:21:01Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:21, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-1. Flower composed of plain vectors'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-1. Flower composed of plain vectors'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt189&lt;/del&gt;.png|Flower composed of plain vectors]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt189&lt;/ins&gt;.png|Flower composed of plain vectors]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-2. Result of first attempt at a drop shadow'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-2. Result of first attempt at a drop shadow'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt191&lt;/del&gt;.png|Result of first attempt at a drop shadow]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt191&lt;/ins&gt;.png|Result of first attempt at a drop shadow]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 106:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 106:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-3. Result of improved drop shadow'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-3. Result of improved drop shadow'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt194&lt;/del&gt;.png|Result of improved drop shadow]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt194&lt;/ins&gt;.png|Result of improved drop shadow]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-4. Drop shadow applied to text'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-4. Drop shadow applied to text'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt195&lt;/del&gt;.png|Drop shadow applied to text]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt195&lt;/ins&gt;.png|Drop shadow applied to text]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 185:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 185:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-5. Drop shadow and glowing text'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-5. Drop shadow and glowing text'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt198&lt;/del&gt;.png|Drop shadow and glowing text]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt198&lt;/ins&gt;.png|Drop shadow and glowing text]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 200:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 200:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-6. Result of hueRotate on fully saturated colors'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-6. Result of hueRotate on fully saturated colors'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt199&lt;/del&gt;.png|Result of hueRotate on fully saturated colors]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt199&lt;/ins&gt;.png|Result of hueRotate on fully saturated colors]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 210:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 210:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-7. Result of saturate on primary colors'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-7. Result of saturate on primary colors'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt200&lt;/del&gt;.png|Result of saturate on primary colors]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt200&lt;/ins&gt;.png|Result of saturate on primary colors]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 220:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 220:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-8. Result of luminanceToAlpha'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-8. Result of luminanceToAlpha'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt201&lt;/del&gt;.png|Result of luminanceToAlpha]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt201&lt;/ins&gt;.png|Result of luminanceToAlpha]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/dl&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 258:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 258:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-9. Result of feImage'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-9. Result of feImage'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt202&lt;/del&gt;.png|Result of feImage]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt202&lt;/ins&gt;.png|Result of feImage]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 292:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 292:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-10. Result of linear component transfer'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-10. Result of linear component transfer'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt203&lt;/del&gt;.png|Result of linear component transfer]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt203&lt;/ins&gt;.png|Result of linear component transfer]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 300:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 300:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-11. Gamma curve functions'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-11. Gamma curve functions'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt204&lt;/del&gt;.png|Gamma curve functions]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt204&lt;/ins&gt;.png|Gamma curve functions]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-12. Result of using gamma correction'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-12. Result of using gamma correction'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt205&lt;/del&gt;.png|Result of using gamma correction]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt205&lt;/ins&gt;.png|Result of using gamma correction]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 402:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 402:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-13. Result of using table and discrete transfers'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-13. Result of using table and discrete transfers'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt208&lt;/del&gt;.png|Result of using table and discrete transfers]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt208&lt;/ins&gt;.png|Result of using table and discrete transfers]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 416:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 416:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-14. Comparsion of linearRGB and sRGB'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-14. Comparsion of linearRGB and sRGB'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt209&lt;/del&gt;.png|Comparsion of linearRGB and sRGB]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt209&lt;/ins&gt;.png|Comparsion of linearRGB and sRGB]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 455:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 455:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-15. Result of using feComposite operators'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-15. Result of using feComposite operators'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt217&lt;/del&gt;.png|Result of using feComposite operators]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt217&lt;/ins&gt;.png|Result of using feComposite operators]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 492:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 492:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-16. Result of feComposite in and out'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-16. Result of feComposite in and out'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt218&lt;/del&gt;.png|Result of feComposite in and out]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt218&lt;/ins&gt;.png|Result of feComposite in and out]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 524:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 524:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-17. Result of feBlend in and out'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-17. Result of feBlend in and out'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt219&lt;/del&gt;.png|Result of feBlend in and out]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt219&lt;/ins&gt;.png|Result of feBlend in and out]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 571:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 571:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-18. Result of feFlood and feTile elements'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-18. Result of feFlood and feTile elements'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt220&lt;/del&gt;.png|Result of feFlood and&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt220&lt;/ins&gt;.png|Result of feFlood and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;   feTile elements]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;   feTile elements]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 593:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 593:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-19. Relationship of x-, y,- and z-axes'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-19. Relationship of x-, y,- and z-axes'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt221&lt;/del&gt;.png|Relationship of x-, y,- and z-axes]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt221&lt;/ins&gt;.png|Relationship of x-, y,- and z-axes]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 675:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 675:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-20. Result of applying diffuse lighting filter'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-20. Result of applying diffuse lighting filter'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt223&lt;/del&gt;.png|Result of applying diffuse lighting filter]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt223&lt;/ins&gt;.png|Result of applying diffuse lighting filter]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 755:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 755:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-21. Result of applying specular lighting filter'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-21. Result of applying specular lighting filter'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt225&lt;/del&gt;.png|Result of applying specular lighting filter]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt225&lt;/ins&gt;.png|Result of applying specular lighting filter]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 804:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 804:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-22. Result of accessing background alpha'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-22. Result of accessing background alpha'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt226&lt;/del&gt;.png|Result of accessing background alpha]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt226&lt;/ins&gt;.png|Result of accessing background alpha]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 843:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 843:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-23. Result of using feMorphology'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-23. Result of using feMorphology'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt227&lt;/del&gt;.png|Result of using feMorphology]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt227&lt;/ins&gt;.png|Result of using feMorphology]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 892:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 892:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-24. Result of using feConvolveMatrix'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-24. Result of using feConvolveMatrix'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt231&lt;/del&gt;.png|Result of using feConvolveMatrix]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt231&lt;/ins&gt;.png|Result of using feConvolveMatrix]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 944:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 944:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-25. Result of using feDisplacementMap'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-25. Result of using feDisplacementMap'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt232&lt;/del&gt;.png|Result of using feDisplacementMap]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt232&lt;/ins&gt;.png|Result of using feDisplacementMap]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 972:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 972:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-26. Same graphic used as both inputs to feDisplacementMap'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-26. Same graphic used as both inputs to feDisplacementMap'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt233&lt;/del&gt;.png|Same graphic used as both inputs to feDisplacementMap]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt233&lt;/ins&gt;.png|Same graphic used as both inputs to feDisplacementMap]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 995:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 995:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-27. Various values of feTurbulence attributes'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 10-27. Various values of feTurbulence attributes'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_10_tt234&lt;/del&gt;.png|Various values of feTurbulence attributes]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_10_tt234&lt;/ins&gt;.png|Various values of feTurbulence attributes]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:2424:newid:2666 --&gt;
&lt;/table&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2424&amp;oldid=prev</id>
		<title>Docbook2Wiki: Initial conversion from Docbook</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Filters&amp;diff=2424&amp;oldid=prev"/>
				<updated>2008-03-04T22:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SVG Essentials/TOC}}&lt;br /&gt;
The preceding chapters have given you a basis for creating graphics that convey information with great precision and detail. If you're going on a spring picnic, you want a precise map. When you look in the newspaper for the graphics that describe the weather forecast, you want &amp;quot;just the facts.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you're asked later to describe the day of the picnic, nobody wants a crisp recitation of meteorological statistics. Similarly, nobody wants to see a graphic of a spring flower composed of pure vectors; [[SVG Essentials/Filters#svgess-CHP-10-FIG-1|Figure 10-1]] fails totally to convey any warmth or charm.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-1. Flower composed of plain vectors'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt189.png|Flower composed of plain vectors]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Graphics are often designed to evoke feelings or moods as much as they are meant to convey information. Artists who work with bitmap graphics have many tools at their disposal to add such effects; they can produce blurred shadows, selectively thicken or thin lines, add textures to part of the drawing, make an object appear to be embossed or beveled, etc.&lt;br /&gt;
&lt;br /&gt;
== How Filters Work ==&lt;br /&gt;
&lt;br /&gt;
Although SVG is not a bitmap description language, it still lets you use some of these same tools. When an SVG viewer program processes a graphic object, it will render the object to some bitmapped output device; at some point the program will convert the object's description into the appropriate set of pixels that appear on the output device. Now let's say that you use the SVG &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt; element to specify a set of operations that display an object with a blurred shadow offset slightly to the side, and attach that filter to an object:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;drop-shadow&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;!-- filter operations go here --&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;spring-flower&amp;quot;&lt;br /&gt;
     '''style=&amp;quot;filter: url(#drop-shadow);&amp;quot;'''/&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- drawing of flower goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because the flower uses a filter in its presentation style, SVG will not render the flower directly to the final graphic. Instead, SVG will render the flower's pixels into a temporary bitmap. The operations specified by the filter will be applied to that temporary area and their result will be rendered into the final graphic.&lt;br /&gt;
&lt;br /&gt;
== Creating a Drop Shadow ==&lt;br /&gt;
&lt;br /&gt;
In [[SVG Essentials/Document Structure|Chapter 4]], in [[SVG Essentials/Document Structure#The image Element|Section 4.3.5]], we created a drop shadow by offsetting a gray ellipse underneath a colored ellipse. It worked, but it wasn't elegant. Let's investigate a way to create a better-looking drop shadow with a filter.&lt;br /&gt;
&lt;br /&gt;
=== Establishing the Filter's Bounds ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt; element has attributes that describe the clipping region for a filter. You specify an &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; in terms of the percentage of the filtered object's bounding box. (That is the default.) Any portion of the resulting output that's outside the bounds will not be displayed. If you are intending to apply a filter to many objects, you may want to omit these attributes altogether and take the default values of &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; equal to -10%, &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; equal to -10%, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; equal to 120%, and &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; equal to 120%. This gives extra space for filters — such as the drop shadow that we're constructing — that produce output larger than their input.&lt;br /&gt;
&lt;br /&gt;
These attributes are in terms of the filtered object's bounding box; specifically, &amp;lt;tt&amp;gt;filterUnits&amp;lt;/tt&amp;gt; has a value of &amp;lt;tt&amp;gt;objectBoundingBox&amp;lt;/tt&amp;gt; by default. If you wish to specify boundaries in user units, then set the attribute's value to &amp;lt;tt&amp;gt;userSpaceOnUse&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Using feGaussianBlur for a Drop Shadow ===&lt;br /&gt;
&lt;br /&gt;
Between the beginning and ending &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt; tags are the filter primitives that perform the operations you desire. Each primitive has one or more inputs, and exactly one output. An input can be the original graphic, specified as &amp;lt;tt&amp;gt;SourceGraphic&amp;lt;/tt&amp;gt;, the alpha (opaqueness) channel of the graphic, specified as &amp;lt;tt&amp;gt;SourceAlpha&amp;lt;/tt&amp;gt;, or the output of a previous filtering primitive. You will probably use the alpha source more often, since it avoids the interactions of alpha and color, as described in [[SVG Essentials/Clipping and Masking|Chapter 9]], in [[SVG Essentials/Clipping and Masking#Masking|Section 9.2]].&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-1|Example 10-1]] is our first attempt to produce a drop shadow on the flower, using the &amp;lt;tt&amp;gt;&amp;lt;feGaussianBlur&amp;gt;&amp;lt;/tt&amp;gt; filter primitive. We specify &amp;lt;tt&amp;gt;SourceAlpha&amp;lt;/tt&amp;gt; as its input (the &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; attribute), and the amount of blur with the &amp;lt;tt&amp;gt;stdDeviation&amp;lt;/tt&amp;gt; attribute. The larger this number, the greater the blur. If you give two numbers separated by whitespace as the value for &amp;lt;tt&amp;gt;stdDeviation&amp;lt;/tt&amp;gt;, the first number is taken as the blur in the ''x''-direction and the second as the blur in the ''y''-direction.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-1. First attempt to produce a drop shadow'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;drop-shadow&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feGaussianBlur in=&amp;quot;SourceAlpha&amp;quot; stdDeviation=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot; filter=&amp;quot;url(#drop-shadow)&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- drawing here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-FIG-2|Figure 10-2]] shows the result, which is probably not what you thought it would be.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-2&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-2. Result of first attempt at a drop shadow'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt191.png|Result of first attempt at a drop shadow]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Don't be surprised; remember, the filter returns the output, which is a blurred alpha channel, ''instead'' of the original source graphic. We could get the effect we want by putting the flower within the &amp;lt;tt&amp;gt;&amp;lt;defs&amp;gt;&amp;lt;/tt&amp;gt; section of the document and changing our SVG to read:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; filter=&amp;quot;url(#drop-shadow)&amp;quot;&lt;br /&gt;
     transform=&amp;quot;translate(4, 4)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, that would require SVG to execute all the elements that make up the flower twice. Instead, we will add more filter primitives, so that all the work can be handled during rendering.&lt;br /&gt;
&lt;br /&gt;
=== Storing, Chaining, and Merging Filter Results ===&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-2|Example 10-2]] is the updated filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-2&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-2. Improved drop shadow filter'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;drop-shadow&amp;quot;&amp;gt; &lt;br /&gt;
     &amp;lt;feGaussianBlur in=&amp;quot;SourceAlpha&amp;quot; stdDeviation=&amp;quot;2&amp;quot; '''result=&amp;quot;blur&amp;quot;'''/&amp;gt;     '''[1]'''&lt;br /&gt;
     &amp;lt;feOffset '''in=&amp;quot;blur&amp;quot;''' dx=&amp;quot;4&amp;quot; dy=&amp;quot;4&amp;quot; '''result=&amp;quot;offsetBlur&amp;quot;'''/&amp;gt;     '''[2]'''&lt;br /&gt;
     &amp;lt;feMerge&amp;gt;     '''[3]'''&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;SourceGraphic&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/feMerge&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;result&amp;lt;/tt&amp;gt; attribute specifies that the result of this primitive can be referenced later by the name &amp;lt;tt&amp;gt;blur&amp;lt;/tt&amp;gt;. This isn't like an XML &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;; the name you give is a local name that's only valid for the duration of the primitives contained in the current &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;&amp;lt;feOffset&amp;gt;&amp;lt;/tt&amp;gt; primitive takes its input, in this case the &amp;lt;tt&amp;gt;blur&amp;lt;/tt&amp;gt; result from the Gaussian blur, offsets it by the specified &amp;lt;tt&amp;gt;dx&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;dy&amp;lt;/tt&amp;gt; values, and stores the resulting bitmap under the name &amp;lt;tt&amp;gt;offsetBlur&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;&amp;lt;feMerge&amp;gt;&amp;lt;/tt&amp;gt; primitive encloses a list of &amp;lt;tt&amp;gt;&amp;lt;feMergeNode&amp;gt;&amp;lt;/tt&amp;gt; elements, each of which specifies an input. The inputs are stacked one on top of another in the order that they appear. In this case, we want the &amp;lt;tt&amp;gt;offsetBlur&amp;lt;/tt&amp;gt; below the original &amp;lt;tt&amp;gt;sourceGraphic&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We now refer to this improved drop shadow filter sequence when drawing the flower, producing a surprisingly pleasant image in [[SVG Essentials/Filters#svgess-CHP-10-FIG-3|Figure 10-3]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot; filter=&amp;quot;url(#drop-shadow)&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- drawing here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-3&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-3. Result of improved drop shadow'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt194.png|Result of improved drop shadow]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
When you first start working with filters, I strongly recommend that you do things in stages, testing filters one at a time. I created large numbers of stunningly ugly results during botched attempts to discover how a filter really works. You probably will, too. We'll just keep it as our little secret.&lt;br /&gt;
&lt;br /&gt;
Similarly, when you first learn about filters, you will be tempted to apply as many of them as possible to a drawing, just to see what will happen. Since your purpose is experimentation, go ahead. Once you finish experimenting and begin production work, the purpose of the filter changes. Filters should support and enhance your message, not overwhelm it. Judicious use of one or two filters is a buoy; a flotilla of filters almost always sinks the message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating a Glowing Shadow ==&lt;br /&gt;
&lt;br /&gt;
The drop shadow works well on the flower, but looks totally unimpressive when applied to text, as we see in [[SVG Essentials/Filters#svgess-CHP-10-FIG-4|Figure 10-4]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-4&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-4. Drop shadow applied to text'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt195.png|Drop shadow applied to text]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instead, we'd like a glowing turquoise area to surround the text, and we can do this with the &amp;lt;tt&amp;gt;&amp;lt;feColorMatrix&amp;gt;&amp;lt;/tt&amp;gt; primitive to change black to a different color.&lt;br /&gt;
&lt;br /&gt;
=== The feColorMatrix Element ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;feColorMatrix&amp;gt;&amp;lt;/tt&amp;gt; element allows you to change color values in a very generalized way. The sequence of primitives used to create a glowing turquoise shadow is shown in [[SVG Essentials/Filters#svgess-CHP-10-EX-3|Example 10-3]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-3&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-3. Glow filter'''&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;filter id=&amp;quot;glow&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feColorMatrix type=&amp;quot;matrix&amp;quot;     '''[1]'''&lt;br /&gt;
         values=&lt;br /&gt;
             &amp;quot;0 0 0 0   0&lt;br /&gt;
              0 0 0 0.9 0 &lt;br /&gt;
              0 0 0 0.9 0 &lt;br /&gt;
              0 0 0 1   0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feGaussianBlur stdDeviation=&amp;quot;2.5&amp;quot;     '''[2]'''&lt;br /&gt;
         result=&amp;quot;coloredBlur&amp;quot;/&amp;gt;     '''[3]'''&lt;br /&gt;
     &amp;lt;feMerge&amp;gt;     '''[4]'''&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;coloredBlur&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;SourceGraphic&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/feMerge&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;&amp;lt;feColorMatrix&amp;gt;&amp;lt;/tt&amp;gt; is a very versatile primitive, allowing you to modify any of the color or alpha values of a pixel. When the &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; attribute equals &amp;lt;tt&amp;gt;matrix&amp;lt;/tt&amp;gt;, you must set the &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; to a series of twenty numbers describing the transformation.&lt;br /&gt;
&lt;br /&gt;
To set up a transformation that adds color to the alpha values, set up your matrix values as follows:&lt;br /&gt;
&lt;br /&gt;
 values=&lt;br /&gt;
     &amp;quot;0 0 0 ''red'' 0&lt;br /&gt;
      0 0 0 ''green'' 0 &lt;br /&gt;
      0 0 0 ''blue'' 0 &lt;br /&gt;
      0 0 0 1 0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
where the red, green, and blue values are decimal numbers which usually range from zero to 1. In this example, we've set the red to zero, and the green and blue values to 0.9, which will produce a bright cyan color.&lt;br /&gt;
&lt;br /&gt;
You'll note that we didn't specify an &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; attribute for the input to this primitive; the default is to use the &amp;lt;tt&amp;gt;SourceGraphic&amp;lt;/tt&amp;gt;. We also didn't put a &amp;lt;tt&amp;gt;result&amp;lt;/tt&amp;gt; attribute into this primitive. This means that the color matrix operation's output is available only as the implicit input to the next filter primitive. If you use this shortcut, then the next filter primitive must ''not'' have an &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; Now that we have a cyan-colored source, we use Gaussian blur to spread it out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; The resulting cyan-colored blur is stored for future reference as &amp;lt;tt&amp;gt;coloredBlur&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[4]'''&amp;lt;/tt&amp;gt; As in the previous example, we use &amp;lt;tt&amp;gt;&amp;lt;feMerge&amp;gt;&amp;lt;/tt&amp;gt; to output the glow underneath the object in question.&lt;br /&gt;
&lt;br /&gt;
With these two filters, we can create the new, improved [[SVG Essentials/Filters#svgess-CHP-10-FIG-5|Figure 10-5]] with SVG like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot; style=&amp;quot;filter: url(#drop-shadow);&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- draw the flower --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;text x=&amp;quot;120&amp;quot; y=&amp;quot;50&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#glow); fill: #003333; font-size:18;&amp;gt;&lt;br /&gt;
 Spring &amp;lt;tspan x=&amp;quot;120&amp;quot; y=&amp;quot;70&amp;quot;&amp;gt;Flower&amp;lt;/tspan&amp;gt;&lt;br /&gt;
 &amp;lt;/text&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-5&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-5. Drop shadow and glowing text'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt198.png|Drop shadow and glowing text]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== More About the feColorMatrix Element ===&lt;br /&gt;
&lt;br /&gt;
We started with the most general kind of color matrix, where you get to specify any values you wish. There are three other values for the &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; attribute. Each of these &amp;quot;built-in&amp;quot; color matrices accomplishes a particular visual task and has its own way of specifying &amp;lt;tt&amp;gt;values&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;hueRotate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The &amp;lt;tt&amp;gt;values&amp;lt;/tt&amp;gt; is a single number that tells how many degrees the color values should be rotated. The mathematics used to accomplish this are very similar to those used in the &amp;lt;tt&amp;gt;rotate&amp;lt;/tt&amp;gt; transformation as described in [[SVG Essentials/Transforming the Coordinate System#The rotate Transformation|Section 5.5]] in [[SVG Essentials/Transforming the Coordinate System|Chapter 5]]. The relation between rotation and resulting color is not at all obvious, as shown in [[SVG Essentials/Filters#svgess-CHP-10-FIG-6|Figure 10-6]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-6&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-6. Result of hueRotate on fully saturated colors'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt199.png|Result of hueRotate on fully saturated colors]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;saturate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The &amp;lt;tt&amp;gt;values&amp;lt;/tt&amp;gt; attribute specifies a single number in the range zero to one. The smaller the number, the more &amp;quot;washed out&amp;quot; the colors will be, as you see in [[SVG Essentials/Filters#svgess-CHP-10-FIG-7|Figure 10-7]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-7&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-7. Result of saturate on primary colors'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt200.png|Result of saturate on primary colors]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;luminanceToAlpha&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;This filter creates an alpha channel based upon a color's luminance. The luminance is the inherent &amp;quot;brightness&amp;quot; of a color, as described in [[SVG Essentials/Clipping and Masking#Masking|Section 9.2]] in [[SVG Essentials/Clipping and Masking|Chapter 9]]. In [[SVG Essentials/Filters#svgess-CHP-10-FIG-8|Figure 10-8]], the luminance of the colored squares is used as an alpha channel for solid black squares. The lighter a color, the less the transparency it confers upon the filtered object. The &amp;lt;tt&amp;gt;values&amp;lt;/tt&amp;gt; attribute is ignored for this &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-8&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-8. Result of luminanceToAlpha'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt201.png|Result of luminanceToAlpha]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feImage Filter ==&lt;br /&gt;
&lt;br /&gt;
Up to this point, we've used only the original graphic or its alpha channel as input to a filter. SVG's &amp;lt;tt&amp;gt;&amp;lt;feImage&amp;gt;&amp;lt;/tt&amp;gt; element lets you use any JPG, PNG, or SVG file; or an SVG element with an &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt; attribute as input to a filter. In [[SVG Essentials/Filters#svgess-CHP-10-EX-4|Example 10-4]], we import a picture of the sky with a cloud in it to use as a background in the picture of the flower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-4&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-4. Using the feImage element'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;sky-shadow&amp;quot; filterUnits=&amp;quot;objectBoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
     '''&amp;lt;feImage xlink:href=&amp;quot;sky.jpg&amp;quot; result=&amp;quot;sky&amp;quot;/&amp;gt;'''&lt;br /&gt;
     &amp;lt;feGaussianBlur in=&amp;quot;SourceAlpha&amp;quot; stdDeviation=&amp;quot;2&amp;quot; result=&amp;quot;blur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feOffset in=&amp;quot;blur&amp;quot; dx=&amp;quot;4&amp;quot; dy=&amp;quot;4&amp;quot; result=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feMerge&amp;gt;&lt;br /&gt;
         '''&amp;lt;feMergeNode in=&amp;quot;sky&amp;quot;/&amp;gt;'''&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;SourceGraphic&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/feMerge&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot; style=&amp;quot;filter: url(#sky-shadow)&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- show original image --&amp;gt;&lt;br /&gt;
 &amp;lt;image xlink:href=&amp;quot;sky.jpg&amp;quot; x=&amp;quot;170&amp;quot; y=&amp;quot;10&amp;quot;&lt;br /&gt;
     width=&amp;quot;122&amp;quot; height=&amp;quot;104&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we're referencing a JPG image, it stretches to fill the bounding box of the filtered object. [[SVG Essentials/Filters#svgess-CHP-10-FIG-9|Figure 10-9]] shows the result, with the original picture of the sky shown at right at its true size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-9&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-9. Result of feImage'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt202.png|Result of feImage]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feComponentTransfer Filter ==&lt;br /&gt;
&lt;br /&gt;
The problem with the background is that it is too dark. Using &amp;lt;tt&amp;gt;saturate&amp;lt;/tt&amp;gt; isn't the answer; it raises or lowers all the color levels. What we need to do is increase the level of green and red more than the blue level, and the &amp;lt;tt&amp;gt;&amp;lt;feComponentTransfer&amp;gt;&amp;lt;/tt&amp;gt; element lets us do just that.&lt;br /&gt;
&lt;br /&gt;
You adjust the levels of red, green, blue, and alpha by placing a &amp;lt;tt&amp;gt;&amp;lt;feFuncR&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;feFuncG&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;feFuncB&amp;gt;&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;&amp;lt;feFuncA&amp;gt;&amp;lt;/tt&amp;gt; element inside the &amp;lt;tt&amp;gt;&amp;lt;feComponentTransfer&amp;gt;&amp;lt;/tt&amp;gt;. Each of these sub-elements may independently specify a &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; attribute that tells how that particular channel is to be modified.&lt;br /&gt;
&lt;br /&gt;
To simulate the effect of a brightness control, you specify the &amp;lt;tt&amp;gt;linear&amp;lt;/tt&amp;gt; function, which places the current color value &amp;lt;tt&amp;gt;C&amp;lt;/tt&amp;gt; into the formula: &amp;lt;tt&amp;gt;''slope''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt; *  C + &amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''intercept''&amp;lt;/tt&amp;gt;. The &amp;lt;tt&amp;gt;''intercept''&amp;lt;/tt&amp;gt; provides a &amp;quot;base value&amp;quot; for the result; the &amp;lt;tt&amp;gt;''slope''&amp;lt;/tt&amp;gt; is a simple scaling factor. [[SVG Essentials/Filters#svgess-CHP-10-EX-5|Example 10-5]] uses a filter that adds a brightened sky to the flower with the drop shadow. Note that the red and green channels are adjusted differently than the blue channel. This dramatically brightens the sky in [[SVG Essentials/Filters#svgess-CHP-10-FIG-10|Figure 10-10]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-5&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-5. Changing brightness with feComponentTransfer'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;brightness-shadow&amp;quot; filterUnits=&amp;quot;objectBoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;sky.jpg&amp;quot; result=&amp;quot;sky&amp;quot;/&amp;gt;&lt;br /&gt;
     '''&amp;lt;feComponentTransfer in=&amp;quot;sky&amp;quot; result=&amp;quot;sky&amp;quot;&amp;gt;'''&lt;br /&gt;
 '''        &amp;lt;feFuncB type=&amp;quot;linear&amp;quot; slope=&amp;quot;3&amp;quot; intercept=&amp;quot;0&amp;quot;/&amp;gt;'''&lt;br /&gt;
 '''        &amp;lt;feFuncR type=&amp;quot;linear&amp;quot; slope=&amp;quot;1.5&amp;quot; intercept=&amp;quot;0.2&amp;quot;/&amp;gt;'''&lt;br /&gt;
 '''        &amp;lt;feFuncG type=&amp;quot;linear&amp;quot; slope=&amp;quot;1.5&amp;quot; intercept=&amp;quot;0.2&amp;quot;/&amp;gt;'''&lt;br /&gt;
 '''    &amp;lt;/feComponentTransfer&amp;gt;'''&lt;br /&gt;
     &amp;lt;feGaussianBlur in=&amp;quot;SourceAlpha&amp;quot; stdDeviation=&amp;quot;2&amp;quot; result=&amp;quot;blur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feOffset in=&amp;quot;blur&amp;quot; dx=&amp;quot;4&amp;quot; dy=&amp;quot;4&amp;quot; result=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feMerge&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;sky&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;SourceGraphic&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/feMerge&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-10&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-10. Result of linear component transfer'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt203.png|Result of linear component transfer]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A simple linear adjustment will add and multiply the same amount to every color value within a channel. This is not the case with the &amp;lt;tt&amp;gt;gamma&amp;lt;/tt&amp;gt; function, which places the current color value &amp;lt;tt&amp;gt;C&amp;lt;/tt&amp;gt; into the formula: &amp;lt;tt&amp;gt;''amplitude''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt; *  C&amp;lt;/tt&amp;gt; &amp;lt;sup&amp;gt;&amp;lt;tt&amp;gt;''exponent''&amp;lt;/tt&amp;gt;&amp;lt;/sup&amp;gt; &amp;lt;tt&amp;gt; + &amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''offset''&amp;lt;/tt&amp;gt;. The &amp;lt;tt&amp;gt;''offset''&amp;lt;/tt&amp;gt; provides a &amp;quot;base value&amp;quot; for the result; the &amp;lt;tt&amp;gt;''amplitude''&amp;lt;/tt&amp;gt; is a simple scaling factor, and &amp;lt;tt&amp;gt;''exponent''&amp;lt;/tt&amp;gt; makes the result a curved line rather than a straight line. Since the color value is always between zero and one, the larger your exponent, the ''smaller'' the modified value will be. [[SVG Essentials/Filters#svgess-CHP-10-FIG-11|Figure 10-11]] shows the curves generated with exponent values of 0.6 (the solid line) and 0.3 (the dashed line). Looking at the dashed line, you can see that a low original color value such as 0.1 will be boosted to 0.5, a 400% increase. An original value of 0.5, on the other hand, will increase only 80% to 0.9.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-11&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-11. Gamma curve functions'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt204.png|Gamma curve functions]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you specify a gamma filter, you set the &amp;lt;tt&amp;gt;amplitude&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;exponent&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;offset&amp;lt;/tt&amp;gt; attributes to correspond to the values in the preceding formula. [[SVG Essentials/Filters#svgess-CHP-10-EX-6|Example 10-6]] uses gamma correction to adjust the sky. In this particular case, the differences between [[SVG Essentials/Filters#svgess-CHP-10-FIG-12|Figure 10-12]] and [[SVG Essentials/Filters#svgess-CHP-10-FIG-10|Figure 10-10]] are minor, but there are some images which can be improved much more by one method than by the other.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-6&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-6. Gamma adjustment with feComponentTransfer'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feImage xlink:href=&amp;quot;sky.jpg&amp;quot; result=&amp;quot;sky&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;feComponentTransfer in=&amp;quot;sky&amp;quot; result=&amp;quot;sky&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feFuncB type=&amp;quot;gamma&amp;quot;&lt;br /&gt;
         amplitude=&amp;quot;1&amp;quot; exponent=&amp;quot;0.2&amp;quot; offset=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feFuncR type=&amp;quot;gamma&amp;quot;&lt;br /&gt;
         amplitude=&amp;quot;1&amp;quot; exponent=&amp;quot;0.707&amp;quot; offset=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feFuncG type=&amp;quot;gamma&amp;quot;&lt;br /&gt;
         amplitude=&amp;quot;1&amp;quot; exponent=&amp;quot;0.707&amp;quot; offset=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/feComponentTransfer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-12&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-12. Result of using gamma correction'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt205.png|Result of using gamma correction]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The astute reader (that's you) may have observed that both linear and gamma functions can produce color values greater than 1.0. The SVG specification says that this is not an error; after each filter primitive, the SVG processor will clamp the values to a valid range. Thus, any value greater than 1.0 is reduced to 1.0 and any value less than zero is set to zero.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;feComponentTransfer&amp;gt;&amp;lt;/tt&amp;gt; has other options for the &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; attribute. Please note that you may mix and match any of these; you can gamma correct the red values while brightening the green values with a linear function.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;identity&amp;lt;/tt&amp;gt;&lt;br /&gt;
: A &amp;quot;do-nothing&amp;quot; function. This lets you explicitly state that a color channel should remain unaffected. (This is the default if you don't provide an &amp;lt;tt&amp;gt;&amp;lt;feFunc&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''X''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt; element for a particular channel.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;table&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Lets you divide the color values into a series of equal intervals, each of which will be proportionately scaled. Consider the following remapping, which doubles the value of the lowest quarter of the color range, squeezes the next quarter into a range of one tenth, keeps the third quarter in exact proportion, then squeezes the last quarter of the values into the remaining 15% of the color range:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Original value range !! Modified value range&lt;br /&gt;
|-&lt;br /&gt;
| 0.00 -- 0.25 || 0.00 -- 0.50&lt;br /&gt;
|-&lt;br /&gt;
| 0.25 -- 0.50 || 0.50 -- 0.60&lt;br /&gt;
|-&lt;br /&gt;
| 0.50 -- 0.75 || 0.60 -- 0.85&lt;br /&gt;
|-&lt;br /&gt;
| 0.75 -- 1.00 || 0.85 -- 0.100&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You would specify this mapping for the green channel by listing the endpoints of the remapped range in the &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; attribute.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feFuncG type=&amp;quot;table&amp;quot;&lt;br /&gt;
     tableValues =&amp;quot;0.0, 0.5, 0.6, 0.85, 1.0&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are dividing the input spectrum into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; different sections, you must provide &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt;+1 items in &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt;, separated by whitespace or commas.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;discrete&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Lets you divide the color values into a series of equal intervals, each of which will be mapped to a single discrete color value. Consider the following remapping, which maps the value of the lowest quarter of the color range to 0.125, sets the next quarter to 0.375, the third quarter to 0.625, and remaining quarter to 0.875. (That is, each quarter of the range is mapped to its center point.)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Original value range !! Modified value&lt;br /&gt;
|-&lt;br /&gt;
| 0.00 — 0.25 || 0.125&lt;br /&gt;
|-&lt;br /&gt;
| 0.25 — 0.50 || 0.375&lt;br /&gt;
|-&lt;br /&gt;
| 0.50 — 0.75 || 0.625&lt;br /&gt;
|-&lt;br /&gt;
| 0.75 — 1.00 || 0.875&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You would specify this mapping for the green channel by listing the discrete values, separated by commas or whitespace, in the &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; attribute.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feFuncG type=&amp;quot;discrete&amp;quot;&lt;br /&gt;
     tableValues =&amp;quot;0.125 0.375 0.625 0.875&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dividing the input channel into &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; sections requires &amp;lt;tt&amp;gt;''n''&amp;lt;/tt&amp;gt; entries in the &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; attribute. ''Exception'': If you want to remap all the input values to a single output value, you must place that entry into &amp;lt;tt&amp;gt;tableValues&amp;lt;/tt&amp;gt; twice; thus, to set any input value of the blue channel to 0.5, you would say: &amp;lt;tt&amp;gt;&amp;lt;feFuncB type=&amp;quot;discrete&amp;quot; tableValues=&amp;quot;0.5 0.5&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
If you want to invert the range of color values for a channel (that is, change increasing values from a minimum to maximum into decreasing values from the maximum to the minimum), use this: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feFunc''X'' type=&amp;quot;table&amp;quot; &lt;br /&gt;
     tableValues=&amp;quot;''maximum'' &lt;br /&gt;
                   ''minimum''&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-FIG-13|Figure 10-13]] shows the results of using discrete and table transfers as well as inversion via a table transfer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-13&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-13. Result of using table and discrete transfers'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt208.png|Result of using table and discrete transfers]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
Ordinarily, the values for red, green, or blue run in a straight line from zero to one, with zero being none of the color and one being 100% of the color. This is called a linear color space. However, when SVG calculates the color values between gradient stops (as described in [[SVG Essentials/Patterns and Gradients|Chapter 7]], in [[SVG Essentials/Patterns and Gradients#Gradients|Section 7.2]]), it uses a special way of representing color such that the values do not follow a straight line from zero to one. This representation is called the standard RGB or ''sRGB'' color space, and its use can make gradients much more natural-looking. [[SVG Essentials/Filters#svgess-CHP-10-FIG-14|Figure 10-14]] shows a comparison. The first gradient goes from black to green, the second from red to green to blue, and the third from black to white.&lt;br /&gt;
&lt;br /&gt;
By default, filter arithmetic calculates any interpolated (&amp;quot;in-between&amp;quot;) values in the linear RGB space, so if you apply a filter to an object that has been filled with a gradient, you will get results that aren't at all what you expect. In order to get the correct result, you must tell the filter to do its calculations in sRGB space by adding a &amp;lt;tt&amp;gt;color-interpolation-filters=&amp;quot;sRGB&amp;quot;&amp;lt;/tt&amp;gt; attribute to your &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt; element. Alternatively, you may leave the filter alone and apply &amp;lt;tt&amp;gt;color-interpolation=&amp;quot;linearRGB&amp;quot;&amp;lt;/tt&amp;gt; to the &amp;lt;tt&amp;gt;&amp;lt;gradient&amp;gt;&amp;lt;/tt&amp;gt; element, so that it uses the same color space as the default for filters.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-14&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-14. Comparsion of linearRGB and sRGB'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt209.png|Comparsion of linearRGB and sRGB]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feComposite Filter ==&lt;br /&gt;
&lt;br /&gt;
So far we have combined the results of filters by using &amp;lt;tt&amp;gt;&amp;lt;feMerge&amp;gt;&amp;lt;/tt&amp;gt; to layer the intermediate results one over another. We will now investigate the much more general &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt; element. This element takes two inputs, specified with the &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;in2&amp;lt;/tt&amp;gt; attributes, and an &amp;lt;tt&amp;gt;operator&amp;lt;/tt&amp;gt; that tells how the two are to be combined. In the following explanation, we'll presume that you've specified &amp;lt;tt&amp;gt;in=&amp;quot;A&amp;quot;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;in2=&amp;quot;B&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;&amp;lt;feComposite operator=&amp;quot;'''over'''&amp;quot; in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Produces the result of layering &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; over &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;, exactly as &amp;lt;tt&amp;gt;&amp;lt;feMergeNode&amp;gt;&amp;lt;/tt&amp;gt; does. In fact, &amp;lt;tt&amp;gt;&amp;lt;feMergeNode&amp;gt;&amp;lt;/tt&amp;gt; is really just a convenient shortcut for a &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt; element that specifies an &amp;lt;tt&amp;gt;over&amp;lt;/tt&amp;gt; operation.&lt;br /&gt;
;&amp;lt;tt&amp;gt;&amp;lt;feComposite operator=&amp;quot;'''in'''&amp;quot; in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The result is the part of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; that is within the boundaries of &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;. Don't confuse the name of this attribute value with the &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; attribute.&lt;br /&gt;
;&amp;lt;tt&amp;gt;&amp;lt;feComposite operator=&amp;quot;'''out'''&amp;quot; in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The result is the part of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; that is outside the boundaries of &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;.&lt;br /&gt;
;&amp;lt;tt&amp;gt;&amp;lt;feComposite operator=&amp;quot;'''atop'''&amp;quot; in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The result is the part of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; that is inside B, as well as the part of &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt; outside A. To quote the article in which these operators were first defined: &amp;quot;...''paper'' atop ''table'' includes ''paper'' where it is on top of ''table'', and ''table'' otherwise; area beyond the edge of the table is out of the picture.&amp;quot;&amp;lt;ref&amp;gt;&amp;quot;Compositing Digital Images,&amp;quot; T. Porter, T. Duff, SIGGRAPH '84 Conference Proceedings, Association for Computing Machinery, Volume 18, Number 3, July 1984.&amp;lt;/ref&amp;gt;&lt;br /&gt;
;&amp;lt;tt&amp;gt;&amp;lt;feComposite operator=&amp;quot;'''xor'''&amp;quot; in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The result is the part of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; that is outside &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt; together with the part of &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt; that is outside &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;tt&amp;gt;&amp;lt;feComposite in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot; operator=&amp;quot;'''arithmetic'''&amp;quot; .../&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;The ultimate in flexibility. You provide four coefficients, &amp;lt;tt&amp;gt;k1&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k2&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;k3&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;k4&amp;lt;/tt&amp;gt;. The result for each pixel is calculated as:&lt;br /&gt;
&lt;br /&gt;
 k1 * A * B + k2 * A + k3 * B + k4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The arithmetic operator is useful for doing a &amp;quot;dissolve&amp;quot; effect. If you want to have a resulting image that is &amp;lt;tt&amp;gt;''a''&amp;lt;/tt&amp;gt;% of image A and &amp;lt;tt&amp;gt;''b''&amp;lt;/tt&amp;gt;% of image B, set &amp;lt;tt&amp;gt;k1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;k4&amp;lt;/tt&amp;gt; to zero, &amp;lt;tt&amp;gt;k2&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;''a''&amp;lt;/tt&amp;gt;/100, and &amp;lt;tt&amp;gt;k3&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;''b''&amp;lt;/tt&amp;gt;/100. So, to make a blend with 30% of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt; and 70% of &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;, you'd use this: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feComposite in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot; result=&amp;quot;combined&amp;quot;&lt;br /&gt;
     k1=&amp;quot;0&amp;quot; k2=&amp;quot;0.30&amp;quot; k3=&amp;quot;0.70&amp;quot; k4=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-FIG-15|Figure 10-15]] shows the combinations that we've described; the arithmetic blend is 50% of A and 50% of B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-15&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-15. Result of using feComposite operators'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt217.png|Result of using feComposite operators]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-7|Example 10-7]] uses the &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;out&amp;lt;/tt&amp;gt; operators to do &amp;quot;cut-outs.&amp;quot; The drop shadow has been eliminated from this example to produce a more visually pleasing result in [[SVG Essentials/Filters#svgess-CHP-10-FIG-16|Figure 10-16]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-7&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-7. Use of feComposite in and out'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;sky-in&amp;quot; filterUnits=&amp;quot;objectBoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;sky.jpg&amp;quot; result=&amp;quot;sky&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;sky&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;&lt;br /&gt;
         operator=&amp;quot;in&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;sky-out&amp;quot; filterUnits=&amp;quot;objectBoundingBox&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;sky.jpg&amp;quot; result=&amp;quot;sky&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;sky&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;&lt;br /&gt;
         operator=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; transform=&amp;quot;translate(10,10)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#sky-in);&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; transform=&amp;quot;translate(170,10)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#sky-out);&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-16&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-16. Result of feComposite in and out'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt218.png|Result of feComposite in and out]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feBlend Filter ==&lt;br /&gt;
&lt;br /&gt;
But wait, there's more! Yes, filters provide yet another way to combine images. The &amp;lt;tt&amp;gt;&amp;lt;feBlend&amp;gt;&amp;lt;/tt&amp;gt; element requires two inputs, specified with the &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;in2&amp;lt;/tt&amp;gt; attributes, and a &amp;lt;tt&amp;gt;mode&amp;lt;/tt&amp;gt; that tells how the inputs are to be blended. The possible values are: &amp;lt;tt&amp;gt;normal&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;multiply&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;screen&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;lighten&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;darken&amp;lt;/tt&amp;gt;. Given opaque inputs &amp;lt;tt&amp;gt;&amp;lt;feBlend in=&amp;quot;A&amp;quot; in2=&amp;quot;B&amp;quot; mode=&amp;quot;&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''m''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;, the following table shows the color of the resulting pixel for each mode:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Mode !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;normal&amp;lt;/tt&amp;gt; || B only; this is the same as the &amp;lt;tt&amp;gt;over&amp;lt;/tt&amp;gt; operator in &amp;lt;tt&amp;gt;&amp;lt;feMerge&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;multiply&amp;lt;/tt&amp;gt; || As the name suggests, the resulting color value is the product of &amp;lt;tt&amp;gt;A&amp;lt;/tt&amp;gt;'s color value and &amp;lt;tt&amp;gt;B&amp;lt;/tt&amp;gt;'s color value. This tends to dramatically weaken light colors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;screen&amp;lt;/tt&amp;gt; || Adds the color values together, then subtracts their product. This tends to strengthen light colors more than dark colors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;darken&amp;lt;/tt&amp;gt; || Takes the minimum of A and B. This is the darker color, hence the name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;lighten&amp;lt;/tt&amp;gt; || Takes the maximum of A and B. This is the lighter color, hence the name.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the appropriate calculation is done independently for each of the red, green, and blue values. So, if you were to darken a pure red square with RGB values of (100%, 0%, 0%) and a gray square with RGB values of (50%, 50%, 50%), the resulting color would be (50%, 0%, 0%). If the inputs are not opaque, then all the modes except for &amp;lt;tt&amp;gt;screen&amp;lt;/tt&amp;gt; factor in the transparencies when making the calculations.&lt;br /&gt;
&lt;br /&gt;
Finally, once the color value is calculated, the opacity of the result is determined by the formula &amp;lt;tt&amp;gt;1 - (1 -&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''opacity of A''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;) * (1 -&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''opacity of B''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;. Using this formula, two opaque items will still be opaque; two items that are 50% opaque will combine to one that is 75% opaque.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-FIG-17|Figure 10-17]] shows the result of blending an opaque solid gray (50%, 50%, 50%) bar with opaque and 50% opaque color squares that have RGB values of black (#000), yellow (#ff0), red (#f00), medium-bright green (#0c0), and dark blue (#009).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-17&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-17. Result of feBlend in and out'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt219.png|Result of feBlend in and out]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feFlood and feTile Filters ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;feFlood&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;feTile&amp;gt;&amp;lt;/tt&amp;gt; elements are &amp;quot;utility filters.&amp;quot; Much like &amp;lt;tt&amp;gt;&amp;lt;feOffset&amp;gt;&amp;lt;/tt&amp;gt;, they allow you to carry out certain common operations within a series of filter primitives rather than having to create extra SVG elements in your main graphic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;feFlood&amp;gt;&amp;lt;/tt&amp;gt; provides a solid colored area for use in compositing or merging. You provide the &amp;lt;tt&amp;gt;flood-fill-color&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;flood-fill-opacity&amp;lt;/tt&amp;gt;, and the filter does the rest.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;feTile&amp;gt;&amp;lt;/tt&amp;gt; takes its input and tiles it horizontally and vertically to fill the area that is specified in the filter. The size of the tile itself is specified by the &amp;lt;tt&amp;gt;&amp;lt;feImage&amp;gt;&amp;lt;/tt&amp;gt; element used as the input to &amp;lt;tt&amp;gt;&amp;lt;feTile&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-8|Example 10-8]] uses &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt; to cut out the flooded and tiled area to the shape of a flower. The image used as a tile is shown for reference at the upper right of [[SVG Essentials/Filters#svgess-CHP-10-FIG-18|Figure 10-18]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-8&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-8. Example of feFlood and feTile'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;flood-filter&amp;quot; x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feFlood flood-color=&amp;quot;#993300&amp;quot; flood-opacity=&amp;quot;0.8&amp;quot; result=&amp;quot;tint&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;tint&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;&lt;br /&gt;
         operator=&amp;quot;in&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;tile-filter&amp;quot; x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;cloth.jpg&amp;quot; width=&amp;quot;32&amp;quot; height=&amp;quot;32&amp;quot;&lt;br /&gt;
         result=&amp;quot;cloth&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feTile in=&amp;quot;cloth&amp;quot; result=&amp;quot;cloth&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;cloth&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;&lt;br /&gt;
         operator=&amp;quot;in&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; transform=&amp;quot;translate(0, 0)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#flood-filter);&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; transform=&amp;quot;translate(110,0)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#tile-filter);&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;image xlink:href=&amp;quot;cloth.jpg&amp;quot; x=&amp;quot;220&amp;quot; y=&amp;quot;10&amp;quot;&lt;br /&gt;
     width=&amp;quot;32&amp;quot; height=&amp;quot;32&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-18&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-18. Result of feFlood and feTile elements'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt220.png|Result of feFlood and&lt;br /&gt;
   feTile elements]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lighting Effects ==&lt;br /&gt;
&lt;br /&gt;
If you draw a bright green circle with SVG, it looks like a refugee from a traffic signal, glowing by its own light and otherwise lying flat on the screen. If you look at a circle cut out of green construction paper, it looks more &amp;quot;real&amp;quot; because it is lit from an outside source and has some texture. A circle cut from green plastic not only is lit from outside, it also has reflected highlights. We call light from an outside source diffuse lighting, and the highlights that reflect off a surface specular lighting, from the Latin ''speculum'', meaning ''mirror''.&lt;br /&gt;
&lt;br /&gt;
In order to achieve these effects, you must specify:&lt;br /&gt;
&lt;br /&gt;
* The type of lighting you want (&amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;&amp;lt;feSpecularLighting&amp;gt;&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* The object you want to light&lt;br /&gt;
* The color of light you are using&lt;br /&gt;
* The type of light source you want (&amp;lt;tt&amp;gt;&amp;lt;fePointLight&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;feDistantLight&amp;gt;&amp;lt;/tt&amp;gt;, or &amp;lt;tt&amp;gt;&amp;lt;feSpotLight&amp;gt;&amp;lt;/tt&amp;gt;) and its location&lt;br /&gt;
&lt;br /&gt;
You specify the location of a light source in three dimensions; this means you will need a ''z''-value in addition to ''x''- and ''y''-values. The relationship of the ''x''-, ''y-'', and ''z''-axes is shown in [[SVG Essentials/Filters#svgess-CHP-10-FIG-19|Figure 10-19]]; the positive ''z'' axis is &amp;quot;coming out of the screen&amp;quot; and pointing at you.&lt;br /&gt;
&lt;br /&gt;
Both these lighting effects use the alpha channel of the object they are illuminating as a bump map; higher alpha values are presumed to be &amp;quot;raised&amp;quot; above the surface of the object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-19&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-19. Relationship of x-, y,- and z-axes'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt221.png|Relationship of x-, y,- and z-axes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Diffuse Lighting ===&lt;br /&gt;
&lt;br /&gt;
The best way to show how the &amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt; element works is to jump right into [[SVG Essentials/Filters#svgess-CHP-10-EX-9|Example 10-9]]. We will shine a pale yellow light on a green circle, textured with the curve pattern that we used in [[SVG Essentials/Patterns and Gradients#svgess-CHP-7-EX-1|Example 7-1]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-9&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-9. Diffuse lighting with a point light source'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;path id=&amp;quot;curve&amp;quot; d=&amp;quot;M 0 0 Q 5 20 10 10 T 20 20&amp;quot;     '''[1]'''&lt;br /&gt;
     style=&amp;quot;stroke: black; fill: none;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;circle id=&amp;quot;green-light&amp;quot; cx=&amp;quot;50&amp;quot; cy=&amp;quot;50&amp;quot; r=&amp;quot;50&amp;quot;     '''[2]'''&lt;br /&gt;
     style=&amp;quot;fill: #060;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;diff-light&amp;quot; color-interpolation-filters=&amp;quot;sRGB&amp;quot;     '''[3]'''&lt;br /&gt;
     x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;#curve&amp;quot; result=&amp;quot;tile&amp;quot;     '''[4]'''&lt;br /&gt;
         width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feTile in=&amp;quot;tile&amp;quot; result=&amp;quot;tile&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feColorMatrix type=&amp;quot;luminanceToAlpha&amp;quot; in=&amp;quot;tile&amp;quot;     '''[5]'''&lt;br /&gt;
         result=&amp;quot;alphaTile&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feDiffuseLighting in=&amp;quot;alphaTile&amp;quot;     '''[6]'''&lt;br /&gt;
         lighting-color=&amp;quot;#ffffcc&amp;quot;&lt;br /&gt;
         surfaceScale=&amp;quot;1&amp;quot;      '''[7]'''&lt;br /&gt;
         diffuseConstant=&amp;quot;0.5&amp;quot;      '''[8]'''&lt;br /&gt;
         result=&amp;quot;diffuseOutput&amp;quot;&amp;gt;     '''[9]'''&lt;br /&gt;
         &amp;lt;fePointLight x=&amp;quot;0&amp;quot; y=&amp;quot;50&amp;quot; z=&amp;quot;50&amp;quot;/&amp;gt;     '''[10]'''&lt;br /&gt;
     &amp;lt;/feDiffuseLighting&amp;gt;     '''[11]'''&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;diffuseOutput&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;     '''[12]'''&lt;br /&gt;
         operator=&amp;quot;in&amp;quot; result=&amp;quot;diffuseOutput&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feBlend in=&amp;quot;diffuseOutput&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;     '''[13]'''&lt;br /&gt;
         mode=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; Define the curve that will be used as the tile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; Define the object that we want to illuminate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; Set the color interpolation method and the boundaries for the filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[4]'''&amp;lt;/tt&amp;gt; Tile the area of the filter with the &amp;lt;tt&amp;gt;curve&amp;lt;/tt&amp;gt; image. This will become our bump map...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[5]'''&amp;lt;/tt&amp;gt; ...so convert it to a pure alpha map, named &amp;lt;tt&amp;gt;alphaTile&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[6]'''&amp;lt;/tt&amp;gt; This tiled area is the input to the &amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt; element, which we will illuminate with a pale yellow light,as specified by the &amp;lt;tt&amp;gt;lighting-color&amp;lt;/tt&amp;gt; attribute.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[7]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;surfaceScale&amp;lt;/tt&amp;gt; attribute tells the height of the surface for an alpha value of 1. (Specifically, it's the factor by which the alpha value is multiplied.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[8]'''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;diffuseConstant&amp;lt;/tt&amp;gt; is a multiplicative factor that is used in determining the final RGB values of a pixel. It must have a value greater than or equal to zero; its default value is one. The brighter your &amp;lt;tt&amp;gt;lighting-color&amp;lt;/tt&amp;gt;, the smaller this number should be. Unless you like having your picture washed out.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[9]'''&amp;lt;/tt&amp;gt; The result of this filter will be named &amp;lt;tt&amp;gt;diffuseOutput&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[10]'''&amp;lt;/tt&amp;gt; In this example, we are using a point light source, which means a source that radiates light in all directions. We will position it at the left center of the area we wish to illuminate, and set it 50 units in front of the screen. The farther you set it away from the object, the more evenly the object is illuminated. In this example, we've moved the light up close and personal to get the greatest possible effect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[11]'''&amp;lt;/tt&amp;gt; The end of the &amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The input to this filter was an alpha channel; the output is a ''totally opaque'' RGB bitmap; its alpha channel is equal to 1.0 at every point.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[12]'''&amp;lt;/tt&amp;gt; We use &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; operator to clip the filter's output to the boundaries of the source graphic (the circle).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[13]'''&amp;lt;/tt&amp;gt; Finally, we use &amp;lt;tt&amp;gt;&amp;lt;feBlend&amp;gt;&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;screen&amp;lt;/tt&amp;gt; mode, which tends to lighten the input, to create the final image.&lt;br /&gt;
&lt;br /&gt;
Once this is all defined, the following statement activates the filter on the desired object to produce [[SVG Essentials/Filters#svgess-CHP-10-FIG-20|Figure 10-20]]:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#green-light&amp;quot; style=&amp;quot;filter: url(#diff-light);&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-20&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-20. Result of applying diffuse lighting filter'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt223.png|Result of applying diffuse lighting filter]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specular Lighting ===&lt;br /&gt;
&lt;br /&gt;
Specular lighting, on the other hand, gives highlights rather than illumination. [[SVG Essentials/Filters#svgess-CHP-10-EX-10|Example 10-10]] shows how this works.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-10&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-10. Specular lighting with a distant light'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;path id=&amp;quot;curve&amp;quot; d=&amp;quot;M 0 0 Q 5 20 10 10 T 20 20&amp;quot;     '''[1]'''&lt;br /&gt;
    style=&amp;quot;stroke: black; fill: none;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;circle id=&amp;quot;green-light&amp;quot; cx=&amp;quot;50&amp;quot; cy=&amp;quot;50&amp;quot; r=&amp;quot;50&amp;quot; &lt;br /&gt;
     style=&amp;quot;fill: #060;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;spec-light&amp;quot; color-interpolation-filters=&amp;quot;sRGB&amp;quot;     '''[2]'''&lt;br /&gt;
     x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;#curve&amp;quot; result=&amp;quot;tile&amp;quot;     '''[3]'''&lt;br /&gt;
         width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
          &lt;br /&gt;
     &amp;lt;feTile in=&amp;quot;tile&amp;quot; result=&amp;quot;tile&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feColorMatrix type=&amp;quot;luminanceToAlpha&amp;quot; in=&amp;quot;tile&amp;quot;&lt;br /&gt;
         result=&amp;quot;alphaTile&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feSpecularLighting in=&amp;quot;alphaTile&amp;quot;     '''[4]'''&lt;br /&gt;
         lighting-color=&amp;quot;#ffffcc&amp;quot;&lt;br /&gt;
           surfaceScale=&amp;quot;1&amp;quot;      '''[5]'''&lt;br /&gt;
           specularConstant=&amp;quot;1&amp;quot;     '''[6]'''&lt;br /&gt;
           specularExponent=&amp;quot;4&amp;quot;      '''[7]'''&lt;br /&gt;
           result=&amp;quot;specularOutput&amp;quot;&amp;gt;     '''[8]'''&lt;br /&gt;
           &amp;lt;feDistantLight elevation=&amp;quot;25&amp;quot; azimuth=&amp;quot;0&amp;quot;/&amp;gt;     '''[9]'''&lt;br /&gt;
     &amp;lt;/feSpecularLighting&amp;gt;     '''[10]'''&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;specularOutput&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;     '''[11]'''&lt;br /&gt;
         operator=&amp;quot;in&amp;quot; result=&amp;quot;specularOutput&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feComposite in=&amp;quot;specularOutput&amp;quot; in2=&amp;quot;SourceGraphic&amp;quot;     '''[12]'''&lt;br /&gt;
         operator=&amp;quot;arithmetic&amp;quot; k1=&amp;quot;0&amp;quot; k2=&amp;quot;1&amp;quot; k3=&amp;quot;1&amp;quot; k4=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; As in the previous example, the first six lines define the curve and circle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; The only difference between this and the previous example is the filter name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; As in the previous example, this section tiles the curve into an alpha channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[4]'''&amp;lt;/tt&amp;gt; Starts the definition of the &amp;lt;tt&amp;gt;&amp;lt;feSpecularLighting&amp;gt;&amp;lt;/tt&amp;gt; filter and specifies the &amp;lt;tt&amp;gt;lighting-color&amp;lt;/tt&amp;gt; to be a pale yellow light.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[5]'''&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;surfaceScale&amp;lt;/tt&amp;gt; attribute tells the height of the surface for an alpha value of 1. (Specifically, it's the factor by which the alpha value is multiplied.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[6]'''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;specularConstant&amp;lt;/tt&amp;gt; is a multiplicative factor that is used in determining the final RGB values of a pixel. It must have a value greater than or equal to zero; its default value is one. The brighter your &amp;lt;tt&amp;gt;lighting-color&amp;lt;/tt&amp;gt;, the smaller this number should be.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[7]'''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;specularExponent&amp;lt;/tt&amp;gt; is another factor that is used in determining the final RGB values of a pixel. This attribute must have a value from 1 to 128; the default value is 1. The larger this number, the more &amp;quot;shiny&amp;quot; the result.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[8]'''&amp;lt;/tt&amp;gt; The result of this filter will be named &amp;lt;tt&amp;gt;specularOutput&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[9]'''&amp;lt;/tt&amp;gt; In this example, we are using a distant light source, which means that is ''z''-value is effectively infinity. The &amp;lt;tt&amp;gt;elevation&amp;lt;/tt&amp;gt; tells how far up or down the light is above the horizon, and the &amp;lt;tt&amp;gt;azimuth&amp;lt;/tt&amp;gt; specifies the angle of the light in the plane of the screen — whether it's to the left, right, top, or bottom of the object being illuminated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[10]'''&amp;lt;/tt&amp;gt; The end of the &amp;lt;tt&amp;gt;&amp;lt;feSpecularLighting&amp;gt;&amp;lt;/tt&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The input to this filter was an alpha channel; the output contains both alpha '''and''' color information (unlike &amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt;, which always produces an opaque result).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[11]'''&amp;lt;/tt&amp;gt; We use &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt;'s &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; operator to clip the filter's output to the boundaries of the source graphic (the circle).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[12]'''&amp;lt;/tt&amp;gt; Finally, we use &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt; with the &amp;lt;tt&amp;gt;arithmetic&amp;lt;/tt&amp;gt; operator to do a straight addition of the lighting and the source graphic.&lt;br /&gt;
&lt;br /&gt;
Once this is all defined, the following statement activates the filter on the desired object, producing the highlighting relief effect in [[SVG Essentials/Filters#svgess-CHP-10-FIG-21|Figure 10-21]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#green-light&amp;quot; style=&amp;quot;filter: url(#spec-light);&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-21&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-21. Result of applying specular lighting filter'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt225.png|Result of applying specular lighting filter]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
An excellent tutorial on lighting effects in three dimensions is available at ''http://www.webreference.com/3d/lesson12/''. We're working in only two dimensions, but much of the information is applicable.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A third type of light source, &amp;lt;tt&amp;gt;&amp;lt;feSpotLight&amp;gt;&amp;lt;/tt&amp;gt;, is specified with these attributes: &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;z&amp;lt;/tt&amp;gt;, the location of the spotlight (default value is zero); &amp;lt;tt&amp;gt;pointsAtX&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;pointsAtY&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;pointsAtZ&amp;lt;/tt&amp;gt;, the place that the spotlight is pointing at (default value is zero); &amp;lt;tt&amp;gt;specularExponent&amp;lt;/tt&amp;gt;, a value that controls the focus for the light source (default value is one); and &amp;lt;tt&amp;gt;limitingConeAngle&amp;lt;/tt&amp;gt;, which restricts the region where the light is projected. This is the angle between the spot light axis and the cone. Thus, if you want a 30 degree spread for the entire cone, specify the angle as 15. (The default value is to allow unlimited spread.)&lt;br /&gt;
&lt;br /&gt;
== Accessing the Background ==&lt;br /&gt;
&lt;br /&gt;
In addition to the &amp;lt;tt&amp;gt;SourceGraphic&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;SourceAlpha&amp;lt;/tt&amp;gt; filter inputs, a filtered object may access the part of the image that has already been rendered onto the canvas when you invoke a filter. These parts are called &amp;lt;tt&amp;gt;BackgroundImage&amp;lt;/tt&amp;gt; (''not'' &amp;lt;tt&amp;gt;BackgroundGraphic&amp;lt;/tt&amp;gt;) and &amp;lt;tt&amp;gt;BackgroundAlpha&amp;lt;/tt&amp;gt;. In order to access these inputs, the filtered object must be within a container element that has set the &amp;lt;tt&amp;gt;enable-background&amp;lt;/tt&amp;gt; attribute to the value &amp;lt;tt&amp;gt;new&amp;lt;/tt&amp;gt;. [[SVG Essentials/Filters#svgess-CHP-10-EX-11|Example 10-11]] performs a Gaussian blur on the background alpha channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-11&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-11. Accessing the background'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;blur-background&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feGaussianBlur in=&amp;quot;BackgroundAlpha&amp;quot;     '''[1]'''&lt;br /&gt;
         stdDeviation=&amp;quot;2&amp;quot; result=&amp;quot;blur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feOffset in=&amp;quot;blur&amp;quot; dx=&amp;quot;4&amp;quot; dy=&amp;quot;4&amp;quot; result=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;feMerge&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;offsetBlur&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;feMergeNode in=&amp;quot;SourceGraphic&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/feMerge&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g enable-background=&amp;quot;new&amp;quot;&amp;gt;     '''[2]'''&lt;br /&gt;
     &amp;lt;circle cx=&amp;quot;30&amp;quot; cy=&amp;quot;30&amp;quot; r=&amp;quot;30&amp;quot; style=&amp;quot;fill: #fff;&amp;quot;/&amp;gt;     '''[3]'''&lt;br /&gt;
     &amp;lt;rect x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;60&amp;quot; height=&amp;quot;60&amp;quot;&lt;br /&gt;
         style=&amp;quot;filter: url(#blur-background);      '''[4]'''&lt;br /&gt;
         fill: none; stroke: blue;&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; This is similar to the blur filter used for drop shadows, except that the input is now the &amp;lt;tt&amp;gt;BackgroundAlpha&amp;lt;/tt&amp;gt; rather than the &amp;lt;tt&amp;gt;SourceAlpha&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; Since &amp;lt;tt&amp;gt;&amp;lt;g&amp;gt;&amp;lt;/tt&amp;gt; is a container element, it is a perfect candidate for placing the &amp;lt;tt&amp;gt;enable-background&amp;lt;/tt&amp;gt;. All the children of this element will have access to the background image and alpha.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; We render a white circle onto the canvas; this makes it &amp;quot;invisible&amp;quot; against a white background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[4]'''&amp;lt;/tt&amp;gt; We now draw a rectangle and use the filter. The background alpha that it picks up will be circular, so [[SVG Essentials/Filters#svgess-CHP-10-FIG-22|Figure 10-22]] shows a square with a circular shadow. (Strange, but true!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-22&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-22. Result of accessing background alpha'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt226.png|Result of accessing background alpha]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feMorphology Element ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;feMorphology&amp;gt;&amp;lt;/tt&amp;gt; element lets you &amp;quot;thin&amp;quot; or &amp;quot;thicken&amp;quot; a graphic. You specify an &amp;lt;tt&amp;gt;operator&amp;lt;/tt&amp;gt; with a value of &amp;lt;tt&amp;gt;erode&amp;lt;/tt&amp;gt; to thin or &amp;lt;tt&amp;gt;dilate&amp;lt;/tt&amp;gt; to thicken a graphic. The &amp;lt;tt&amp;gt;radius&amp;lt;/tt&amp;gt; attribute tells us how much the lines are to be thickened or thinned. It's ordinarily applied to alpha channels; in [[SVG Essentials/Filters#svgess-CHP-10-EX-12|Example 10-12]] we erode and dilate a simple line drawing. As you see in [[SVG Essentials/Filters#svgess-CHP-10-FIG-23|Figure 10-23]], erosion can wreak havoc on a drawing that has thin lines to begin with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-12&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-12. Thickening and thinning with feMorphology'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;g id=&amp;quot;cat&amp;quot; stroke-width=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- drawing of a cat --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;erode1&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feMorphology operator=&amp;quot;erode&amp;quot; radius=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;dilate2&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feMorphology operator=&amp;quot;dilate&amp;quot; radius=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#cat&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;text x=&amp;quot;75&amp;quot; y=&amp;quot;170&amp;quot; style=&amp;quot;text-anchor: middle;&amp;quot;&amp;gt;Normal&amp;lt;/text&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#cat&amp;quot; transform=&amp;quot;translate(150,0)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#erode1);&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;text x=&amp;quot;225&amp;quot; y=&amp;quot;170&amp;quot; style=&amp;quot;text-anchor: middle;&amp;quot;&amp;gt;Erode 1&amp;lt;/text&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#cat&amp;quot; transform=&amp;quot;translate(300,0)&amp;quot;&lt;br /&gt;
     style=&amp;quot;filter: url(#dilate2);&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;text x=&amp;quot;375&amp;quot; y=&amp;quot;170&amp;quot; style=&amp;quot;text-anchor: middle;&amp;quot;&amp;gt;Dilate 2&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-23&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-23. Result of using feMorphology'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt227.png|Result of using feMorphology]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feConvolveMatrix Element ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;feConvolveMatrix&amp;gt;&amp;lt;/tt&amp;gt; element lets you calculate a pixel's new value in terms of the values of its neighboring pixels. This filter lets you do effects such as blurring, sharpening, embossing, and beveling. It works by combining a pixel with its neighboring pixels to produce a resulting pixel value. Imagine a pixel P and its eight neighboring pixels (the usual case that is used with this filter):&lt;br /&gt;
&lt;br /&gt;
 A  B  C&lt;br /&gt;
 D  '''P'''  E&lt;br /&gt;
 F  G  H&lt;br /&gt;
&lt;br /&gt;
You then specify a list of nine numbers in the &amp;lt;tt&amp;gt;kernelMatrix&amp;lt;/tt&amp;gt; attribute. These numbers tell how much to multiply each pixel by. These products will be added up. The sum could well come out to be greater than one (if all the factors are positive, for example), so, to even the intensity, the result is divided by the total of the factors. Let's say you specify these nine numbers:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;feConvolveMatrix kernelMatrix=&amp;quot;&lt;br /&gt;
      0  1  2&lt;br /&gt;
      3  4  5&lt;br /&gt;
      6  7  8&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new value of pixel P will then be:&lt;br /&gt;
&lt;br /&gt;
 P' = ((0*A) + (1*B) + (2*C) + &lt;br /&gt;
      (3*D) + (4*P) + (5*E) +&lt;br /&gt;
      (6*F) + (7*G) + (8*H)) / ( 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8) &lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-13|Example 10-13]] achieves the embossing effect shown in [[SVG Essentials/Filters#svgess-CHP-10-FIG-24|Figure 10-24]] by taking the upper left neighbor minus the lower right neighbor of each pixel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-13&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-13. Embossing with feConvolveMatrix'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;emboss&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feConvolveMatrix&lt;br /&gt;
         kernelMatrix=&amp;quot;&lt;br /&gt;
          1 0 0&lt;br /&gt;
          0 0 0&lt;br /&gt;
          0 0 -1&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; style=&amp;quot;filter: url(#emboss);&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-24&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-24. Result of using feConvolveMatrix'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt231.png|Result of using feConvolveMatrix]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the default matrix size is three columns by three rows, you can specify any size you want with the &amp;lt;tt&amp;gt;order&amp;lt;/tt&amp;gt; attribute. If you specify &amp;lt;tt&amp;gt;order=&amp;quot;4&amp;quot;&amp;lt;/tt&amp;gt;, then the matrix will require sixteen numbers (4 by 4) in the &amp;lt;tt&amp;gt;kernelMatrix&amp;lt;/tt&amp;gt; attribute. A matrix with three columns and two rows would be specified by &amp;lt;tt&amp;gt;order=&amp;quot;3 2&amp;quot;&amp;lt;/tt&amp;gt; and would require six numbers. The larger your kernel matrix, the more computation is required to produce the result.&lt;br /&gt;
&lt;br /&gt;
For a pixel in the middle of a graphic, the neighbors are easy to identify. What do you do with the pixels on the edges of the graphic? Who are their neighbors? This decision is made by the setting that you give the &amp;lt;tt&amp;gt;edgeMode&amp;lt;/tt&amp;gt; attribute. If you set its value to be &amp;lt;tt&amp;gt;duplicate&amp;lt;/tt&amp;gt;, then &amp;lt;tt&amp;gt;&amp;lt;feConvolveMatrix&amp;gt;&amp;lt;/tt&amp;gt; duplicates the edge values in the required direction to produce a neighbor. The value &amp;lt;tt&amp;gt;wrap&amp;lt;/tt&amp;gt; wraps around to the opposite side to find a neighbor. For example, the neighbor above a pixel at the top is the pixel at the bottom, and the neighbor to the left of a pixel at the left edge is the corresponding pixel at the right edge. The value of &amp;lt;tt&amp;gt;none&amp;lt;/tt&amp;gt; will provide a transparent black pixel (red, green, blue, and alpha values of zero) for any missing neighbors.&lt;br /&gt;
&lt;br /&gt;
The default behavior of &amp;lt;tt&amp;gt;&amp;lt;feConvolveMatrix&amp;gt;&amp;lt;/tt&amp;gt; is to apply the calculations to all the channels, including alpha. If you want to apply calculations only to the red, green, and blue values, specify &amp;lt;tt&amp;gt;preserveAlpha&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; (the default value is &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You may also add a fixed offset to the result of each calculation by specifying a value for the &amp;lt;tt&amp;gt;bias&amp;lt;/tt&amp;gt; attribute, although this particular feature does not work in the current 1.0 release of Batik. Some sample convolve effects (which were not designed specifically for SVG) are available at ''http://www.nebulus.org/tutorials/2d/pictpub/udf/''.&lt;br /&gt;
&lt;br /&gt;
== The feDisplacementMap Element ==&lt;br /&gt;
&lt;br /&gt;
This fascinating filter uses the color values of its second input to decide how far to move the pixels in the first input. You specify which color channel should be used to affect the ''x''-coordinate of a pixel with the &amp;lt;tt&amp;gt;xChannelSelector&amp;lt;/tt&amp;gt; attribute; the &amp;lt;tt&amp;gt;yChannelSelector&amp;lt;/tt&amp;gt; attribute specifies the color channel used to affect the ''y''-coordinate. The legal values for these selectors are &amp;lt;tt&amp;gt;&amp;quot;R&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;G&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;B&amp;quot;&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;&amp;quot;A&amp;quot;&amp;lt;/tt&amp;gt; (for the alpha channel). You must specify how far to displace pixels; the &amp;lt;tt&amp;gt;scale&amp;lt;/tt&amp;gt; attribute gives the appropriate scaling factor. If you don't specify this attribute, the filter won't do anything.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-EX-14|Example 10-14]] creates a gradient rectangle as the second input. The displacement factor will be set to ten, the red channel will be used as an ''x'' offset, and the green channel will be used as a ''y'' offset. [[SVG Essentials/Filters#svgess-CHP-10-FIG-25|Figure 10-25]] shows the result of applying this displacement to the flower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-14&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-14. Using a gradient as a displacement map'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;linearGradient id=&amp;quot;gradient&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;stop offset=&amp;quot;0&amp;quot; style=&amp;quot;stop-color: #ff0000;&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;stop offset=&amp;quot;0.5&amp;quot; style=&amp;quot;stop-color: #00ff00;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;stop offset=&amp;quot;1&amp;quot; style=&amp;quot;stop-color: #000000;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/linearGradient&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;rect id=&amp;quot;rectangle&amp;quot; x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;200&amp;quot;&lt;br /&gt;
     style=&amp;quot;fill: url(#gradient);&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;filter id=&amp;quot;displace&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feImage xlink:href=&amp;quot;#rectangle&amp;quot; result=&amp;quot;grad&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;feDisplacementMap&lt;br /&gt;
         scale=&amp;quot;10&amp;quot;&lt;br /&gt;
         xChannelSelector=&amp;quot;R&amp;quot;&lt;br /&gt;
         yChannelSelector=&amp;quot;G&amp;quot;&lt;br /&gt;
         in=&amp;quot;SourceGraphic&amp;quot; in2=&amp;quot;grad&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; style=&amp;quot;filter: url(#displace);&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-25&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-25. Result of using feDisplacementMap'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt232.png|Result of using feDisplacementMap]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's possible to use the same graphic for both inputs. This means that a graphic's displacement is controlled by its own coloration. This effect, as written in [[SVG Essentials/Filters#svgess-CHP-10-EX-15|Example 10-15]] and displayed in [[SVG Essentials/Filters#svgess-CHP-10-FIG-26|Figure 10-26]], can be quite eccentric.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-EX-15&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 10-15. Using a Graphic as Its Own Displacement Map'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;defs&amp;gt;&lt;br /&gt;
 &amp;lt;filter id=&amp;quot;self-displace&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;feDisplacementMap&lt;br /&gt;
         scale=&amp;quot;10&amp;quot;&lt;br /&gt;
         xChannelSelector=&amp;quot;R&amp;quot;&lt;br /&gt;
         yChannelSelector=&amp;quot;G&amp;quot;&lt;br /&gt;
         in=&amp;quot;SourceGraphic&amp;quot; '''in2=&amp;quot;SourceGraphic&amp;quot;'''/&amp;gt;&lt;br /&gt;
 &amp;lt;/filter&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g id=&amp;quot;flower&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;amp;lt;!-- flower graphic goes here --&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/defs&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#flower&amp;quot; style=&amp;quot;filter: url(#self-displace);&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-26&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-26. Same graphic used as both inputs to feDisplacementMap'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt233.png|Same graphic used as both inputs to feDisplacementMap]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The feTurbulence Element ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;feTurbulence&amp;gt;&amp;lt;/tt&amp;gt; elements lets you produce artificial textures for effects like marble, clouds, etc. by using equations developed by Ken Perlin. An excellent summary is available at ''http://freespace.virgin.net/hugo.elias/models/m_perlin.htm''. You specify these attributes:&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
: &lt;br /&gt;
;&amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt;&lt;br /&gt;
: One of &amp;lt;tt&amp;gt;turbulence&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;fractalNoise&amp;lt;/tt&amp;gt;. Fractal noise is smoother in appearance.&lt;br /&gt;
;&amp;lt;tt&amp;gt;baseFrequency&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The larger the number you give as the value for this attribute, the more quickly colors change in the result. This number must be greater than zero and should be less than one. You may also give two numbers for this attribute; the first will be the frequency in the ''x'' direction and the second will be the frequency in the ''y'' direction.&lt;br /&gt;
;&amp;lt;tt&amp;gt;numOctaves&amp;lt;/tt&amp;gt;&lt;br /&gt;
: This is the number of noise functions that should be added together when generating the final result. The larger this number, the more fine-grained the texture. The default value is one.&lt;br /&gt;
;&amp;lt;tt&amp;gt;seed&amp;lt;/tt&amp;gt;&lt;br /&gt;
: The starting value for the random number generator that this filter uses. The default value is zero; change it to get some variety in the result.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-FIG-27|Figure 10-27]] is a screenshot of an SVG file that shows various values of the first three of these attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-FIG-27&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 10-27. Various values of feTurbulence attributes'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_10_tt234.png|Various values of feTurbulence attributes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Filter Reference Summary ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;/tt&amp;gt; element contains a series of filter primitives, each of which takes one or more inputs and provides a single result for use with other filters. The result of the last filter in the series is rendered into the final graphic. You specify the dimensions of the canvas to which the filter applies with the &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; attributes.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Filters#svgess-CHP-10-TABLE-1|Table 10-1]] presents a filter reference summary. Each of the filter primitive elements has an &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; attribute that gives the source for the primitive, and may also specify an &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt;. Default attributes are in boldface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-10-TABLE-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Table 10-1. Filter reference summary'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Element !! Attributes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feBlend&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;in2=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''second source''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;mode=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;'''normal'''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot; &amp;amp;#124; &amp;quot;multiply&amp;quot; &amp;amp;#124; &amp;quot;screen&amp;quot; &amp;amp;#124; &amp;quot;darken&amp;quot; &amp;amp;#124; &amp;quot;lighten&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feColorMatrix&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;type=&amp;quot;matrix&amp;quot; &amp;amp;#124; &amp;quot;saturate&amp;quot; &amp;amp;#124; &amp;quot;hueRotate&amp;quot; &amp;amp;#124; &amp;quot;luminanceToAlpha&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;values=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''matrix values''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot; &amp;amp;#124; &amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''saturation value (0-1)''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot; &amp;amp;#124; &amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''rotate degrees''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feComponentTransfer&amp;gt;&amp;lt;/tt&amp;gt; || container for &amp;lt;tt&amp;gt;&amp;lt;feFuncR&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;feFuncG&amp;gt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;feFuncB&amp;gt;&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;&amp;lt;feFuncA&amp;gt;&amp;lt;/tt&amp;gt; elements.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feFunc&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''X''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;type=&amp;quot;identity&amp;quot; &amp;amp;#124; &amp;quot;table&amp;quot; &amp;amp;#124; &amp;quot;discrete&amp;quot; &amp;amp;#124; &amp;quot;linear&amp;quot; &amp;amp;#124; &amp;quot;gamma&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;tableValues=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''intervals for table, steps for discrete''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;slope=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''linear slope''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;intercept=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''linear intercept''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;amplitude=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''gamma amplitude''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;exponent=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''gamma exponent''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;offset=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''gamma offset''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;in2=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''second source''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;operator=&amp;quot;over&amp;quot; &amp;amp;#124; &amp;quot;in&amp;quot; &amp;amp;#124; &amp;quot;out&amp;quot; &amp;amp;#124; &amp;quot;atop&amp;quot; &amp;amp;#124; &amp;quot;xor&amp;quot; &amp;amp;#124; &amp;quot;arithmetic&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feComposite&amp;gt;&amp;lt;/tt&amp;gt;''(continued)'' || The following attributes are used with &amp;lt;tt&amp;gt;arithmetic&amp;lt;/tt&amp;gt;:&amp;lt;tt&amp;gt;k1=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor for in1*in2''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;k2=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor for in1''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;k3=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor for in2''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;k4=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''additive offset''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feConvolveMatrix&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;order=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''columns rows''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 3 by 3)&amp;lt;tt&amp;gt;kernel=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''values''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;bias=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''offset value''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feDiffuseLighting&amp;gt;&amp;lt;/tt&amp;gt; || Container for a light source element.&amp;lt;tt&amp;gt;surfaceScale=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''height''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 1)&amp;lt;tt&amp;gt;diffuseConstant=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (must be non-negative; default 1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feDisplacementMap&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;scale=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''displacement factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;xChannelSelector=&amp;quot;R&amp;quot; &amp;amp;#124; &amp;quot;G&amp;quot; &amp;amp;#124; &amp;quot;B&amp;quot; &amp;amp;#124; &amp;quot;A&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;yChannelSelector=&amp;quot;R&amp;quot; &amp;amp;#124; &amp;quot;G&amp;quot; &amp;amp;#124; &amp;quot;B&amp;quot; &amp;amp;#124; &amp;quot;A&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;in2=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''second input''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feFlood&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;flood-fill-color=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''color specification''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;flood-fill-opacity=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''value (0-1)''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feGaussianBlur&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;stdDeviation=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''blur spread''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (larger is blurrier; default 0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feImage&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;xlink:href=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''image source''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feMerge&amp;gt;&amp;lt;/tt&amp;gt; || container for &amp;lt;tt&amp;gt;&amp;lt;feMergeNode&amp;gt;&amp;lt;/tt&amp;gt; elements&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feMergeNode&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;in=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''intermediate result''&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feMorphology&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;operator=&amp;quot;erode&amp;quot; &amp;amp;#124; &amp;quot;dilate&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;radius=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''x-radius y-radius''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;radius=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''radius''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feOffset&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;dx=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''x offset''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;dy=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''y offset''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feSpecularLighting&amp;gt;&amp;lt;/tt&amp;gt; || Container for a light source element.&amp;lt;tt&amp;gt;surfaceScale=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''height''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 1)&amp;lt;tt&amp;gt;specularConstant=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (must be non-negative; default 1)&amp;lt;tt&amp;gt;specularExponent=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''exponent''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (range 1-128; default 1)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feTile&amp;gt;&amp;lt;/tt&amp;gt; || tiles the &amp;lt;tt&amp;gt;''in''&amp;lt;/tt&amp;gt; layer&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feTurbulence&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;type=&amp;quot;turbulence&amp;quot; &amp;amp;#124; &amp;quot;fractalNoise&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;baseFrequency=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''x-frequency y-frequency''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;baseFrequency=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''frequency''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;numOctaves=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''integer''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;seed=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''number''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feDistantLight&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;azimuth=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''degrees''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;elevation=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''degrees''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;fePointLight&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;x=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;y=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;z=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;&amp;lt;feSpotLight&amp;gt;&amp;lt;/tt&amp;gt; || &amp;lt;tt&amp;gt;x=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;y=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;z=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;pointsAtX=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;pointsAtY=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;pointsAtZ=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''coordinate''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 0)&amp;lt;tt&amp;gt;specularConstant=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''focus control''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (default 1)&amp;lt;tt&amp;gt;limitingConeAngle=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''degrees''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Docbook2Wiki</name></author>	</entry>

	</feed>