scrawl-canvas
Version:
Version 8.9.4 - 19 Nov 2022
134 lines (107 loc) • 4.42 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 027</title>
<link href="css/normalize.css" rel="stylesheet" />
<link href="css/tests.css" rel="stylesheet" />
<style>
#my-image-store {
display: none;
}
.controls {
grid-template-columns: 1fr 2fr 1fr 2fr;
}
</style>
</head>
<body>
<h1><a href="index.html">Scrawl-canvas v8</a> - Filters test 027</h1>
<h2>Parameters for: reducePalette filter</h2>
<h3>To change image, drag-and-drop an image file over the canvas</h3>
<div class="controls">
<div class="green label">Predefined palette</div>
<div class="green">
<select class="controlItem" id="palette">
<option value="black-white">black-white</option>
<option value="monochrome-4">monochrome-4</option>
<option value="monochrome-8">monochrome-8</option>
<option value="monochrome-16">monochrome-16</option>
<option value="RGBK">RGBK</option>
<option value="CMYK">CMYK</option>
<option value="basic">basic</option>
<option value="RGBK-extended">RGBK-extended</option>
<option value="CMYK-extended">CMYK-extended</option>
<option value="extended">extended</option>
</select>
</div>
<div class="green label">String of colors</div>
<div class="green"><input class="controlItem" id="paletteString" type="text" value="" /></div>
<div class="blue label">Commonest colors</div>
<div class="blue">
<select class="controlItem" id="paletteNumber">
<option value="2">2</option>
<option value="4">4</option>
<option value="8">8</option>
<option value="16">16</option>
<option value="32">32</option>
<option value="64">64</option>
<option value="128">128</option>
<option value="256">256</option>
<option value="512">512</option>
</select>
</div>
<div class="blue label">Min color distance</div>
<div class="blue"><input class="controlItem" id="minimumColorDistance" type="range" value="1000" min="50" max="2000" step="50" /></div>
<div class="yellow label">Use OKLAB for distance</div>
<div class="yellow">
<select class="controlItem" id="useLabForPaletteDistance">
<option value="0">false</option>
<option value="1">true</option>
</select>
</div>
<div class="yellow label">Random seed</div>
<div class="yellow"><input class="controlItem" id="seed" type="text" value="some-random-string-or-other" /></div>
<div class="yellow label">Use bluenoise</div>
<div class="yellow">
<select class="controlItem" id="useBluenoise">
<option value="0">false</option>
<option value="1">true</option>
</select>
</div>
<div class="lavender label">Opacity</div>
<div class="lavender"><input class="controlItem" id="opacity" type="range" value="1" min="0" max="1" step="0.01" /></div>
<div class="pink label">Memoize filter</div>
<div class="pink">
<select class="controlItem" id="memoizeFilterOutput">
<option value="0">false</option>
<option value="1">true</option>
</select>
</div>
</div>
<canvas
id="mycanvas"
width="800"
height="400"
data-scrawl-canvas
></canvas>
<p id="reportmessage"></p>
<div class="testinfo">
<h4>Test purpose</h4>
<ul>
<li>Create a test Picture entity</li>
<li>Create a reducePalette filter and apply it to the test entity</li>
<li>Update filter attributes and observe the effect they have on the entity</li>
</ul>
<p>Note that this is a resource-intensive filter. Memoization is strongly advised!</p>
<p><b>Known issue:</b> Filter memoization will, sometimes, kill Safari-based browsers for as-yet-unknown reasons - see demo Filters-001 for details. For now, if Scrawl-canvas detects that the user is viewing the canvas in a Safari-based browser, it will ignore requests to memoize filters.</p>
<p><b>Touch test:</b> not required</p>
<p><a href="../docs/demo/filters-027.html">Annotated code</a></p>
</div>
<div id="my-image-store">
<img id="iris" src="img/iris.png" class="flowers" />
</div>
<script src="filters-027.js" type="module"></script>
</body>
</html>