Files
konva/test/manual/Blur-test.ts

276 lines
5.7 KiB
TypeScript
Raw Normal View History

2021-04-30 09:24:27 -05:00
import { assert } from 'chai';
import { addStage, Konva, loadImage } from '../unit/test-utils.ts';
2021-04-30 09:24:27 -05:00
describe('Blur', function () {
// ======================================================
2021-04-30 09:24:27 -05:00
it('basic blur', function (done) {
var stage = addStage();
2013-09-29 11:26:31 -04:00
2021-04-30 09:24:27 -05:00
loadImage('darth-vader.jpg', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
2020-05-08 09:59:35 -05:00
draggable: true,
});
2013-09-29 11:26:31 -04:00
layer.add(darth);
stage.add(layer);
2013-09-29 11:26:31 -04:00
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(10);
assert.equal(darth.blurRadius(), 10);
assert.equal(darth._filterUpToDate, false);
layer.draw();
2013-09-29 11:26:31 -04:00
assert.equal(darth._filterUpToDate, true);
darth.blurRadius(20);
assert.equal(darth.blurRadius(), 20);
assert.equal(darth._filterUpToDate, false);
layer.draw();
2013-09-29 14:39:10 -04:00
assert.equal(darth._filterUpToDate, true);
done();
2021-04-30 09:24:27 -05:00
});
});
2013-09-29 11:26:31 -04:00
2021-04-30 09:24:27 -05:00
it('blur group', function () {
var stage = addStage();
2015-01-27 00:07:51 -07:00
var layer = new Konva.Layer();
var group = new Konva.Group({
x: 100,
y: 100,
2020-05-08 09:59:35 -05:00
draggable: true,
});
2015-01-27 00:07:51 -07:00
var top = new Konva.Circle({
x: 0,
y: -70,
radius: 30,
fill: 'blue',
stroke: 'black',
2020-05-08 09:59:35 -05:00
strokeWidth: 4,
});
2015-01-27 00:07:51 -07:00
var right = new Konva.Circle({
x: 70,
y: 0,
radius: 30,
fill: 'blue',
stroke: 'black',
2020-05-08 09:59:35 -05:00
strokeWidth: 4,
});
2015-01-27 00:07:51 -07:00
var bottom = new Konva.Circle({
x: 0,
y: 70,
radius: 30,
fill: 'blue',
stroke: 'black',
2020-05-08 09:59:35 -05:00
strokeWidth: 4,
});
2015-01-27 00:07:51 -07:00
var left = new Konva.Circle({
x: -70,
y: 0,
radius: 30,
fill: 'blue',
stroke: 'black',
2020-05-08 09:59:35 -05:00
strokeWidth: 4,
});
2020-05-08 09:59:35 -05:00
group.add(top).add(right).add(bottom).add(left);
layer.add(group);
stage.add(layer);
2021-05-03 17:09:18 -05:00
group.cache();
2021-05-03 17:09:18 -05:00
group.offset();
2015-01-27 00:07:51 -07:00
group.filters([Konva.Filters.Blur]);
group.blurRadius(20);
layer.draw();
});
// ======================================================
2021-04-30 09:24:27 -05:00
it('tween blur', function (done) {
var stage = addStage();
2021-04-30 09:24:27 -05:00
loadImage('darth-vader.jpg', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
2020-05-08 09:59:35 -05:00
draggable: true,
});
layer.add(darth);
stage.add(layer);
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(100);
layer.draw();
var tween = new Konva.Tween({
node: darth,
duration: 2.0,
blurRadius: 0,
2020-05-08 09:59:35 -05:00
easing: Konva.Easings.EaseInOut,
});
2020-05-08 09:59:35 -05:00
darth.on('mouseover', function () {
tween.play();
});
2020-05-08 09:59:35 -05:00
darth.on('mouseout', function () {
tween.reverse();
});
done();
2021-04-30 09:24:27 -05:00
});
});
// ======================================================
2021-04-30 09:24:27 -05:00
it('crop blur', function (done) {
var stage = addStage();
2013-09-29 11:26:31 -04:00
2021-04-30 09:24:27 -05:00
loadImage('darth-vader.jpg', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
crop: { x: 128, y: 48, width: 256, height: 128 },
2020-05-08 09:59:35 -05:00
draggable: true,
});
layer.add(darth);
stage.add(layer);
2013-09-29 11:26:31 -04:00
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(10);
layer.draw();
done();
2021-04-30 09:24:27 -05:00
});
});
// ======================================================
2021-04-30 09:24:27 -05:00
it('crop tween blur', function (done) {
var stage = addStage();
2021-04-30 09:24:27 -05:00
loadImage('darth-vader.jpg', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
crop: { x: 128, y: 48, width: 256, height: 128 },
2020-05-08 09:59:35 -05:00
draggable: true,
});
layer.add(darth);
stage.add(layer);
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(100);
layer.draw();
var tween = new Konva.Tween({
node: darth,
duration: 2.0,
blurRadius: 0,
2020-05-08 09:59:35 -05:00
easing: Konva.Easings.EaseInOut,
});
2020-05-08 09:59:35 -05:00
darth.on('mouseover', function () {
tween.play();
});
2020-05-08 09:59:35 -05:00
darth.on('mouseout', function () {
tween.reverse();
});
done();
2021-04-30 09:24:27 -05:00
});
});
// ======================================================
2021-04-30 09:24:27 -05:00
it('transparency', function (done) {
var stage = addStage();
2021-04-30 09:24:27 -05:00
loadImage('darth-vader.jpg', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
2020-05-08 09:59:35 -05:00
draggable: true,
});
layer.add(darth);
stage.add(layer);
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(100);
layer.draw();
var tween = new Konva.Tween({
node: darth,
2021-05-03 17:09:18 -05:00
duration: 1,
blurRadius: 0,
2020-05-08 09:59:35 -05:00
easing: Konva.Easings.EaseInOut,
});
2020-05-08 09:59:35 -05:00
darth.on('mouseover', function () {
tween.play();
});
2020-05-08 09:59:35 -05:00
darth.on('mouseout', function () {
tween.reverse();
});
done();
2021-04-30 09:24:27 -05:00
});
});
// ======================================================
2021-04-30 09:24:27 -05:00
it('blur hit region', function (done) {
var stage = addStage();
2021-04-30 09:24:27 -05:00
loadImage('lion.png', (imageObj) => {
var layer = new Konva.Layer();
2021-04-30 09:24:27 -05:00
const darth = new Konva.Image({
x: 10,
y: 10,
image: imageObj,
2020-05-08 09:59:35 -05:00
draggable: true,
});
//console.log(darth.hasStroke())
layer.add(darth);
stage.add(layer);
darth.cache();
darth.filters([Konva.Filters.Blur]);
darth.blurRadius(20);
darth.drawHitFromCache(100);
layer.draw();
done();
2021-04-30 09:24:27 -05:00
});
});
});