Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@jimp/plugin-mask/test/mask.test.js
1126 views
1
import { Jimp, mkJGD } from '@jimp/test-utils';
2
import configure from '@jimp/custom';
3
4
import mask from '../src';
5
6
const jimp = configure({ plugins: [mask] }, Jimp);
7
8
describe('Mask', () => {
9
let imgSrcOpaq;
10
let imgSrcAlpa;
11
let maskGrayBig;
12
let maskGraySmall;
13
let maskColor;
14
15
before(done => {
16
Promise.all([
17
jimp.read(mkJGD('▴□▾□■□', '■▴■▾■□', '■□▴□▾□', '■□■▴■▾')),
18
jimp.read(mkJGD('▴▵▾▿', '▴▵▾▿', '▴▵▾▿')),
19
jimp.read(mkJGD('048840', '8CFFC8', '8CFFC8', '048840')),
20
jimp.read(mkJGD('0369', '369C', '69CF')),
21
jimp.read(mkJGD('▴▴▾▾', '▪▪▰▰', '□□□□'))
22
])
23
.then(imgs => {
24
imgSrcOpaq = imgs[0];
25
imgSrcAlpa = imgs[1];
26
maskGrayBig = imgs[2];
27
maskGraySmall = imgs[3];
28
maskColor = imgs[4];
29
done();
30
})
31
.catch(done);
32
});
33
34
it('Affect opaque image with a gray mask with the same size', () => {
35
imgSrcOpaq
36
.clone()
37
.mask(maskGrayBig)
38
.getJGDSync()
39
.should.be.sameJGD({
40
width: 6,
41
height: 4,
42
data: [
43
0xff000000,
44
0xffffff44,
45
0x0000ff88,
46
0xffffff88,
47
0x00000044,
48
0xffffff00,
49
0x00000088,
50
0xff0000cc,
51
0x000000ff,
52
0x0000ffff,
53
0x000000cc,
54
0xffffff88,
55
0x00000088,
56
0xffffffcc,
57
0xff0000ff,
58
0xffffffff,
59
0x0000ffcc,
60
0xffffff88,
61
0x00000000,
62
0xffffff44,
63
0x00000088,
64
0xff000088,
65
0x00000044,
66
0x0000ff00
67
]
68
});
69
});
70
71
it('Affect opaque image with a gray mask with the same size, blited', () => {
72
imgSrcOpaq
73
.clone()
74
.mask(maskGrayBig, 1, 1)
75
.getJGDSync()
76
.should.be.sameJGD({
77
width: 6,
78
height: 4,
79
data: [
80
0xff0000ff,
81
0xffffffff,
82
0x0000ffff,
83
0xffffffff,
84
0x000000ff,
85
0xffffffff,
86
0x000000ff,
87
0xff000000,
88
0x00000044,
89
0x0000ff88,
90
0x00000088,
91
0xffffff44,
92
0x000000ff,
93
0xffffff88,
94
0xff0000cc,
95
0xffffffff,
96
0x0000ffff,
97
0xffffffcc,
98
0x000000ff,
99
0xffffff88,
100
0x000000cc,
101
0xff0000ff,
102
0x000000ff,
103
0x0000ffcc
104
]
105
});
106
});
107
108
it('Affect opaque image with a gray mask with the same size, blited negative', () => {
109
imgSrcOpaq
110
.clone()
111
.mask(maskGrayBig, -1, -1)
112
.getJGDSync()
113
.should.be.sameJGD({
114
width: 6,
115
height: 4,
116
data: [
117
0xff0000cc,
118
0xffffffff,
119
0x0000ffff,
120
0xffffffcc,
121
0x00000088,
122
0xffffffff,
123
0x000000cc,
124
0xff0000ff,
125
0x000000ff,
126
0x0000ffcc,
127
0x00000088,
128
0xffffffff,
129
0x00000044,
130
0xffffff88,
131
0xff000088,
132
0xffffff44,
133
0x0000ff00,
134
0xffffffff,
135
0x000000ff,
136
0xffffffff,
137
0x000000ff,
138
0xff0000ff,
139
0x000000ff,
140
0x0000ffff
141
]
142
});
143
});
144
145
it('Affect opaque image with a smaller gray mask', () => {
146
imgSrcOpaq
147
.clone()
148
.mask(maskGraySmall)
149
.getJGDSync()
150
.should.be.sameJGD({
151
width: 6,
152
height: 4,
153
data: [
154
0xff000000,
155
0xffffff33,
156
0x0000ff66,
157
0xffffff99,
158
0x000000ff,
159
0xffffffff,
160
0x00000033,
161
0xff000066,
162
0x00000099,
163
0x0000ffcc,
164
0x000000ff,
165
0xffffffff,
166
0x00000066,
167
0xffffff99,
168
0xff0000cc,
169
0xffffffff,
170
0x0000ffff,
171
0xffffffff,
172
0x000000ff,
173
0xffffffff,
174
0x000000ff,
175
0xff0000ff,
176
0x000000ff,
177
0x0000ffff
178
]
179
});
180
});
181
182
it('Affect opaque image with a smaller gray mask, blited', () => {
183
imgSrcOpaq
184
.clone()
185
.mask(maskGraySmall, 1, 1)
186
.getJGDSync()
187
.should.be.sameJGD({
188
width: 6,
189
height: 4,
190
data: [
191
0xff0000ff,
192
0xffffffff,
193
0x0000ffff,
194
0xffffffff,
195
0x000000ff,
196
0xffffffff,
197
0x000000ff,
198
0xff000000,
199
0x00000033,
200
0x0000ff66,
201
0x00000099,
202
0xffffffff,
203
0x000000ff,
204
0xffffff33,
205
0xff000066,
206
0xffffff99,
207
0x0000ffcc,
208
0xffffffff,
209
0x000000ff,
210
0xffffff66,
211
0x00000099,
212
0xff0000cc,
213
0x000000ff,
214
0x0000ffff
215
]
216
});
217
});
218
219
it('Affect alpha image with a bigger gray mask', () => {
220
imgSrcAlpa
221
.clone()
222
.mask(maskGrayBig)
223
.getJGDSync()
224
.should.be.sameJGD({
225
width: 4,
226
height: 3,
227
data: [
228
0xff000000,
229
0xff000021,
230
0x0000ff88,
231
0x0000ff43,
232
0xff000088,
233
0xff000065,
234
0x0000ffff,
235
0x0000ff7f,
236
0xff000088,
237
0xff000065,
238
0x0000ffff,
239
0x0000ff7f
240
]
241
});
242
});
243
244
it('Affect alpha image with a bigger gray mask, blited', () => {
245
imgSrcAlpa
246
.clone()
247
.mask(maskGrayBig, -1, -1)
248
.getJGDSync()
249
.should.be.sameJGD({
250
width: 4,
251
height: 3,
252
data: [
253
0xff0000cc,
254
0xff00007f,
255
0x0000ffff,
256
0x0000ff65,
257
0xff0000cc,
258
0xff00007f,
259
0x0000ffff,
260
0x0000ff65,
261
0xff000044,
262
0xff000043,
263
0x0000ff88,
264
0x0000ff21
265
]
266
});
267
});
268
269
it('Affect opaque image with a colored mask', () => {
270
imgSrcOpaq
271
.clone()
272
.mask(maskColor, 1, 1)
273
.getJGDSync()
274
.should.be.sameJGD({
275
width: 6,
276
height: 4,
277
data: [
278
0xff0000ff,
279
0xffffffff,
280
0x0000ffff,
281
0xffffffff,
282
0x000000ff,
283
0xffffffff,
284
0x000000ff,
285
0xff000055,
286
0x00000055,
287
0x0000ff55,
288
0x00000055,
289
0xffffffff,
290
0x000000ff,
291
0xffffffaa,
292
0xff0000aa,
293
0xffffffaa,
294
0x0000ffaa,
295
0xffffffff,
296
0x000000ff,
297
0xffffffff,
298
0x000000ff,
299
0xff0000ff,
300
0x000000ff,
301
0x0000ffff
302
]
303
});
304
});
305
});
306
307