-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
65 lines (55 loc) · 1.44 KB
/
main.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
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
var filters = {};
const render = canvas => {
var oImg = new fabric.Image(document.getElementById("picture"));
oImg.filters = []
_(filters).entries().each(([filter, value]) => {
oImg.filters.push(createFilter(filter, value));
});
let scale = $(window).width() / oImg.width;
oImg.set({
scaleX: scale,
scaleY: scale,
});
oImg.applyFilters();
canvas.setWidth(oImg.width * scale);
canvas.setHeight(oImg.height * scale);
canvas.add(oImg);
};
const createCanvas = () => {
var canvas = new fabric.StaticCanvas('c');
render(canvas);
return canvas;
}
const canvas = createCanvas();
const updateNumber = (target) => {
$(target).parent().find('.filter-value').text(target.value);
}
$('.slider').each((i, e) => {
updateNumber(e);
})
$('.slider').on('change', (event) => {
const [filter, value] = [$(event.target).data('filter'), event.target.value];
filters[filter] = value;
updateNumber(event.target);
render(canvas);
});
$("#reset").on('click', e => {
e.preventDefault();
$('.slider').each((i, e) => {
filters[$(e).data('filter')] = $(e).data('default');
$(e).val($(e).data('default'));
updateNumber(e);
});
render(canvas);
});
$('#choosepicture').on('click', e => {
e.preventDefault();
$('input[type=file]').click();
});
$('#custompictureinput').on('change', e => {
$("#custompictureform").submit();
});
$('#hide').on('click', event => {
event.preventDefault();
$('.slider').parent().toggle();
});