UNPKG

animationvideo

Version:

Javascript-Libary for animation and audio syncing

60 lines (54 loc) 1.55 kB
import CanvasSprite from "./Canvas.mjs"; import * as stackblur from "stackblur-canvas"; const {imageDataRGBA} = stackblur.default || stackblur export default class StackBlurCanvas extends CanvasSprite { constructor(givenParameter) { super(givenParameter); this.currentGridSize = false; this.currentRadiusPart = undefined; } getParameterList() { return Object.assign({}, super.getParameterList(), { radius: undefined, radiusPart: undefined }); } resize(context, additionalModifier) { super.resize(context, additionalModifier); if (this.radiusPart) { this.radius = undefined; } } additionalBlur(targetW, targetH, additionalModifier) { if (additionalModifier.radius) { this.imageData = this.tctx.getImageData(0, 0, targetW, targetH); imageDataRGBA( this.imageData, 0, 0, targetW, targetH, additionalModifier.radius ); this.tctx.putImageData(this.imageData, 0, 0); } } // draw-methode draw(context, additionalModifier) { if (this.enabled) { if ( this.radius === undefined || this.currentRadiusPart !== this.radiusPart ) { this.radius = Math.round( (additionalModifier.widthInPixel + additionalModifier.heightInPixel) / 2 / this.radiusPart ); this.currentRadiusPart = this.radiusPart; } additionalModifier.radius = Math.round(this.radius); super.draw(context, additionalModifier); } } }