2021-04-30 22:24:27 +08:00
|
|
|
import { assert } from 'chai';
|
|
|
|
|
2021-05-05 22:19:24 +08:00
|
|
|
import { addStage, Konva, loadImage } from '../unit/test-utils';
|
2021-04-30 22:24:27 +08:00
|
|
|
|
|
|
|
describe('RGBA', function () {
|
2017-02-24 22:15:33 +08:00
|
|
|
// ======================================================
|
2021-04-30 22:24:27 +08:00
|
|
|
it.skip('colorize basic', function (done) {
|
2017-02-24 22:15:33 +08:00
|
|
|
var data = [
|
|
|
|
{
|
|
|
|
color: '#2a6511',
|
|
|
|
filter: [242, 193, 168, 0.33],
|
2020-05-08 22:59:35 +08:00
|
|
|
result: [108, 131, 67, 255],
|
2017-02-24 22:15:33 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
color: '#e4d526',
|
|
|
|
filter: [175, 98, 37, 0.79],
|
2020-05-08 22:59:35 +08:00
|
|
|
result: [186, 122, 37, 255],
|
|
|
|
},
|
2017-02-24 22:15:33 +08:00
|
|
|
];
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
var stage = new Konva.Stage({
|
|
|
|
container: 'konva-container',
|
|
|
|
width: data.length,
|
2020-05-08 22:59:35 +08:00
|
|
|
height: 1,
|
2017-02-24 22:15:33 +08:00
|
|
|
});
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
var layer = new Konva.Layer({
|
2020-05-08 22:59:35 +08:00
|
|
|
id: 'layer',
|
2017-02-24 22:15:33 +08:00
|
|
|
});
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
for (var i = 0; i < data.length; i += 1) {
|
|
|
|
var d = data[i];
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
var rect = new Konva.Rect({
|
|
|
|
x: i,
|
|
|
|
y: 0,
|
|
|
|
width: 1,
|
|
|
|
height: 1,
|
2020-05-08 22:59:35 +08:00
|
|
|
fill: d.color,
|
2017-02-24 22:15:33 +08:00
|
|
|
});
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
rect.cache();
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
rect.red(d.filter[0]);
|
|
|
|
rect.green(d.filter[1]);
|
|
|
|
rect.blue(d.filter[2]);
|
|
|
|
rect.alpha(d.filter[3]);
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
rect.filters([Konva.Filters.RGBA]);
|
|
|
|
layer.add(rect);
|
|
|
|
}
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
stage.add(layer);
|
|
|
|
layer.batchDraw();
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
var context = layer.getCanvas().getContext();
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2020-05-08 22:59:35 +08:00
|
|
|
var imageDataToArray = function (x) {
|
2017-02-24 22:15:33 +08:00
|
|
|
var imageData = context.getImageData(x, 0, 1, 1).data;
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
return [imageData['0'], imageData['1'], imageData['2'], imageData['3']];
|
|
|
|
};
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
var a0 = imageDataToArray(0);
|
|
|
|
var a1 = imageDataToArray(1);
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
assert.deepEqual(a0, data[0].result);
|
|
|
|
assert.deepEqual(a1, data[1].result);
|
2015-07-30 09:08:33 +08:00
|
|
|
|
2017-02-24 22:15:33 +08:00
|
|
|
done();
|
|
|
|
});
|
2015-07-30 09:08:33 +08:00
|
|
|
});
|