-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreateFilter.js
31 lines (29 loc) · 957 Bytes
/
createFilter.js
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
if (typeof module !== "undefined" && module.exports) {
var fabric = require('fabric').fabric;
var _ = require('lodash');
}
const createFilter = (filter, value) => {
value = parseFloat(value);
switch(filter){
case 'pixelate':
return new fabric.Image.filters.Pixelate({ blocksize: value });
case 'gamma-red':
return new fabric.Image.filters.Gamma({ gamma: [value, 1, 1] });
case 'gamma-green':
return new fabric.Image.filters.Gamma({ gamma: [1, value, 1] });
case 'gamma-blue':
return new fabric.Image.filters.Gamma({ gamma: [1, 1, value] });
case 'blur':
case 'noise':
case 'pixelate':
case 'saturation':
case 'contrast':
case 'brightness':
return new fabric.Image.filters[_.capitalize(filter)]({ [filter]: value })
default:
throw Error(`unknown filter ${filter}`);
}
}
if (typeof module !== "undefined" && module.exports) {
module.exports = createFilter;
}