konva
Version:
HTML5 2d canvas library for interactive graphics, design editors, whiteboards, and diagrams.
25 lines (24 loc) • 854 B
JavaScript
// 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) {
const brightness = this.attrs.brightness === undefined ? 1 : this.brightness(), 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);
}
};