scrawl-canvas
Version:
Version 8.9.4 - 19 Nov 2022
91 lines (72 loc) • 3.46 kB
HTML
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Demo Filters 503</title>
<link href="css/normalize.css" rel="stylesheet" />
<link href="css/tests.css" rel="stylesheet" />
<style>
.controls {
grid-template-columns: 1fr 1fr 1fr 1fr;
width: 400px;
margin: 0 auto;
}
img {
display: none;
}
canvas {
margin: 0 auto;
}
</style>
</head>
<body>
<h1><a href="index.html">Scrawl-canvas v8</a> - Filters test 503</h1>
<h2>SVG-based filter example: posterize</h2>
<div class="controls">
<div class="pink"><input class="controlItem feFuncR" id="r1" type="number" min="0" max="1" step="0.01" value="0.1" /></div>
<div class="pink"><input class="controlItem feFuncR" id="r2" type="number" min="0" max="1" step="0.01" value="0.4" /></div>
<div class="pink"><input class="controlItem feFuncR" id="r3" type="number" min="0" max="1" step="0.01" value="0.7" /></div>
<div class="pink"><input class="controlItem feFuncR" id="r4" type="number" min="0" max="1" step="0.01" value="1" /></div>
<div class="green"><input class="controlItem feFuncG" id="g1" type="number" min="0" max="1" step="0.01" value="0.1" /></div>
<div class="green"><input class="controlItem feFuncG" id="g2" type="number" min="0" max="1" step="0.01" value="0.4" /></div>
<div class="green"><input class="controlItem feFuncG" id="g3" type="number" min="0" max="1" step="0.01" value="0.7" /></div>
<div class="green"><input class="controlItem feFuncG" id="g4" type="number" min="0" max="1" step="0.01" value="1" /></div>
<div class="blue"><input class="controlItem feFuncB" id="b1" type="number" min="0" max="1" step="0.01" value="0.1" /></div>
<div class="blue"><input class="controlItem feFuncB" id="b2" type="number" min="0" max="1" step="0.01" value="0.4" /></div>
<div class="blue"><input class="controlItem feFuncB" id="b3" type="number" min="0" max="1" step="0.01" value="0.7" /></div>
<div class="blue"><input class="controlItem feFuncB" id="b4" type="number" min="0" max="1" step="0.01" value="1" /></div>
</div>
<canvas
id="mycanvas"
width="400"
height="400"
data-scrawl-canvas
></canvas>
<img id="iris" src="img/iris.png" class="flowers" />
<p id="reportmessage"></p>
<div class="testinfo">
<h4>Test purpose</h4>
<ul>
<li>Create a test Picture entity</li>
<li>Create an SVG posterize filter</li>
<li>Apply the filter to the entity</li>
<li>Update the SVG filter's settings; check that they display on the entity as expected</li>
</ul>
<p><b>Known issue:</b> Webkit-based browsers (for instance, Safari) have not yet implemented the Canvas context 'filter' attribute functionality.</p>
<p><b>Touch test:</b> not required</p>
<p><a href="../docs/demo/filters-503.html">Annotated code</a></p>
</div>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<filter id="svg-posterize">
<feComponentTransfer>
<feFuncR type="discrete" tableValues=".1 .4 .7 1" />
<feFuncG type="discrete" tableValues=".1 .4 .7 1" />
<feFuncB type="discrete" tableValues=".1 .4 .7 1" />
</feComponentTransfer>
</filter>
</svg>
<script src="filters-503.js" type="module"></script>
</body>
</html>