给图片添加滤镜前,我们必须先使用cache()
方法将它缓存起来,然后使用filter()
方法添加滤镜。
我们可以使用Konva.Filters.Brighten
滤镜,让图片颜色变亮或加深,通过设置brightness
属性。
brightness
属性可以设置-1到1之间的任意值,小于0颜色加深,大于0颜色变亮。
说明:拖动滑杆调节亮度。
查看所有滤镜 Filters Documentation.
Konva Brighten Image Demoview raw<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/[email protected]/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Brighten Image Demo</title> <style> body { margin: 0; padding: 0; overflow: hidden; background-color: #f0f0f0; }
#slider { position: absolute; top: 20px; left: 20px; } </style> </head>
<body> <div id="container"></div> <input id="slider" type="range" min="-1" max="1" step="0.05" value="0" /> <script> function loadImages(sources, callback) { var images = {}; var loadedImages = 0; var numImages = 0; for (var src in sources) { numImages++; } for (var src in sources) { images[src] = new Image(); images[src].onload = function() { if (++loadedImages >= numImages) { callback(images); } }; images[src].src = sources[src]; } } function buildStage(images) { var stage = new Konva.Stage({ container: 'container', width: window.innerWidth, height: window.innerHeight });
var layer = new Konva.Layer();
var lion = new Konva.Image({ image: images.lion, x: 80, y: 30, draggable: true });
lion.cache(); lion.filters([Konva.Filters.Brighten]); layer.add(lion); stage.add(layer); var slider = document.getElementById('slider'); slider.oninput = function() { lion.brightness(slider.value); layer.batchDraw(); }; }
var sources = { lion: '/assets/lion.png' };
loadImages(sources, buildStage); </script> </body> </html>
|