HTML5 Canvas Pixelate filter Image Tutorial

To apply filter to an Konva.Node, we have to cache it first with cache()
function. Then apply filter with filter() function.

To change pixelate effect of an image with Konva, we can use the Konva.Filters.Pixelate.

Instructions: Slide the control to change pixel size value.

For all available filters go to Filters Documentation.

Konva Pixelate Image Demoview raw
<!DOCTYPE html>
<html>

<head>
<script src="https://cdn.rawgit.com/konvajs/konva/2.0.2/konva.min.js"></script>
<meta charset="utf-8">
<title>Konva Pixelate Image Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #F0F0F0;
}

#controls {
position: absolute;
top: 20px;
left: 20px;
}
</style>
</head>

<body>
<div id="container"></div>
<div id="controls">
pixelSize:
<input id="pixelSize" type="range" min="1" max="20" step="1" value="4">
</div>
<script>
Konva.Image.fromURL('../../../assets/lion.png', function (lion) {
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
});

var layer = new Konva.Layer();

lion.position({
x: 50,
y: 50
});
lion.cache();
lion.filters([Konva.Filters.Pixelate]);
layer.add(lion);
stage.add(layer);

var sliders = ['pixelSize'];
sliders.forEach(function (attr) {
var slider = document.getElementById(attr);
function update() {
lion[attr](parseFloat(slider.value));
layer.batchDraw();
}
slider.oninput = update;
update();
});
});
</script>

</body>

</html>