Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

  • This WPT test may be referenced by the following Test IDs:
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<link rel="match" href="2d.filter.canvasFilterObject.componentTransfer.gamma.tentative-expected.html">
<meta name=fuzzy content="maxDifference=0-2; totalPixels=0-500">
<title>Canvas test: 2d.filter.canvasFilterObject.componentTransfer.gamma.tentative</title>
<h1>2d.filter.canvasFilterObject.componentTransfer.gamma.tentative</h1>
<p class="desc">Test pixels on CanvasFilter() componentTransfer with gamma type</p>
<canvas id="canvas" width="100" height="100">
<p class="fallback">FAIL (fallback content)</p>
</canvas>
<script>
const canvas = new OffscreenCanvas(100, 100);
const ctx = canvas.getContext('2d');
const amplitudes = [2, 1.1, 0.5];
const exponents = [5, 3, 1];
const offsets = [0.25, 0, 0.5];
ctx.filter = new CanvasFilter({name: 'componentTransfer',
funcR: {type: 'gamma', amplitude: amplitudes[0],
exponent: exponents[0], offset: offsets[0]},
funcG: {type: 'gamma', amplitude: amplitudes[1],
exponent: exponents[1], offset: offsets[1]},
funcB: {type: 'gamma', amplitude: amplitudes[2],
exponent: exponents[2], offset: offsets[2]},
});
const inputColors = [
[255, 255, 255],
[0, 0, 0],
[127, 0, 34],
[252, 186, 3],
[50, 68, 87],
];
for (let i = 0 ; i < inputColors.length ; ++i) {
const color = inputColors[i];
ctx.fillStyle = `rgb(${color[0]}, ${color[1]}, ${color[2]})`;
ctx.fillRect(i * 10, i * 10, 10, 10);
}
const outputCanvas = document.getElementById("canvas");
outputCanvas.getContext('2d').drawImage(canvas, 0, 0);
</script>