forked from jimp-dev/jimp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconvolution.test.js
More file actions
115 lines (107 loc) · 2.98 KB
/
convolution.test.js
File metadata and controls
115 lines (107 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
var {Jimp, mkJGD} = require("./test-helper");
describe("Convolution", ()=> {
var imgs = [
Jimp.read(mkJGD(
'22222222',
'22222222',
'22888822',
'22888822',
'22888822',
'22888822',
'22222222',
'22222222'
)),
Jimp.read(mkJGD(
'88222222',
'88222222',
'22222222',
'22222222',
'22222222',
'22222222',
'22222222',
'22222222'
))
];
var imgMid, imgTopLeft; // stores the Jimp instances of the JGD images above.
before((done)=> {
Promise.all(imgs).then((imgs)=> {
imgMid = imgs[0];
imgTopLeft = imgs[1];
done();
}).catch(done);
});
var sharpM = [
[-1,-1, 0],
[-1, 1, 1],
[ 0, 1, 1]
];
it("3x3 sharp matrix on EDGE_EXTEND", (done)=> {
imgMid.clone().convolution(sharpM).getJGDSync().should.be.sameJGD(mkJGD(
'22222222',
'28EEE822',
'2EFFF802',
'2EF88002',
'2EF88002',
'28800002',
'22000002',
'22222222'
), "Mid light block");
imgTopLeft.clone().convolution(sharpM).getJGDSync().should.be.sameJGD(mkJGD(
'80022222',
'00022222',
'00022222',
'22222222',
'22222222',
'22222222',
'22222222',
'22222222'
), "Top left light block");
done();
});
it("3x3 sharp matrix on EDGE_WRAP", (done)=> {
imgMid.clone().convolution(sharpM, Jimp.EDGE_WRAP).getJGDSync().should.be.sameJGD(mkJGD(
'66666666',
'28EEE822',
'2EFFF802',
'2EF88002',
'2EF88002',
'28800002',
'22000002',
'22222222'
), "Mid light block");
imgTopLeft.clone().convolution(sharpM, Jimp.EDGE_WRAP).getJGDSync().should.be.sameJGD(mkJGD(
'FC06666F',
'80022228',
'00022222',
'22222222',
'22222222',
'22222222',
'22222222',
'E8222228'
), "Top left light block");
done();
});
it("3x3 sharp matrix on EDGE_CROP", (done)=> {
imgMid.clone().convolution(sharpM, Jimp.EDGE_CROP).getJGDSync().should.be.sameJGD(mkJGD(
'86666662',
'68EEE820',
'6EFFF800',
'6EF88000',
'6EF88000',
'68800000',
'62000000',
'20000000'
), "Mid light block");
imgTopLeft.clone().convolution(sharpM, Jimp.EDGE_CROP).getJGDSync().should.be.sameJGD(mkJGD(
'FC066662',
'C0022220',
'00022220',
'62222220',
'62222220',
'62222220',
'62222220',
'20000000'
), "Top left light block");
done();
});
});