UNPKG

konva

Version:

HTML5 2d canvas library for interactive graphics, design editors, whiteboards, and diagrams.

31 lines (30 loc) • 1.06 kB
import { _registerCSSFilterFallback } from "../Node.js"; // The shared brightness accessor is registered by Brighten. import "./Brighten.js"; /** * Brightness Filter. * CSS-compatible brightness multiplier. An unset brightness leaves pixels unchanged. * @function * @memberof Konva.Filters * @param {Object} imageData * @example * node.cache(); * node.filters([Konva.Filters.Brightness]); * node.brightness(1.5); // 50% brighter (CSS-compatible) */ export const Brightness = function (imageData) { brighten(imageData, this.attrs.brightness === undefined ? 1 : this.brightness()); }; // CSS brightness(v) is the same multiplier. _registerCSSFilterFallback('brightness', brighten); function brighten(imageData, brightness) { const data = imageData.data, len = data.length; for (let i = 0; i < len; i += 4) { // red data[i] = Math.min(255, data[i] * brightness); // green data[i + 1] = Math.min(255, data[i + 1] * brightness); // blue data[i + 2] = Math.min(255, data[i + 2] * brightness); } }