53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
var MovimAvatar = {
|
|
file : function(files, formname, width = 384, height = 384) {
|
|
var f = files[0];
|
|
if (!f.type.match(/image.*/)) {
|
|
console.log("Not a picture !");
|
|
MovimAvatar.clear(formname);
|
|
} else {
|
|
var reader = new FileReader();
|
|
reader.readAsDataURL(f);
|
|
|
|
reader.onload = function (ev) {
|
|
MovimUtils.getOrientation(f, function(orientation) {
|
|
MovimAvatar.preview(ev.target.result, orientation, formname, width, height);
|
|
});
|
|
};
|
|
};
|
|
},
|
|
clear : function(formname) {
|
|
document.querySelector('form[name=' + formname + '] img').src = '';
|
|
document.querySelector('form[name=' + formname + '] input[name="photobin"]').value = '';
|
|
},
|
|
preview : function(src, orientation, formname, setWidth, setHeight) {
|
|
var image = new Image();
|
|
image.src = src;
|
|
|
|
image.onload = function() {
|
|
var canvas = document.createElement('canvas');
|
|
width = canvas.width = setWidth;
|
|
height = canvas.height = setHeight;
|
|
ctx = canvas.getContext("2d");
|
|
|
|
MovimUtils.applyOrientation(ctx, orientation, width, height)
|
|
MovimUtils.drawImageProp(ctx, image);
|
|
|
|
var base64 = canvas.toDataURL('image/jpeg', 0.80);
|
|
|
|
var preview = document.querySelector('form[name=' + formname + '] img');
|
|
|
|
var list = document.querySelector('form[name=' + formname + '] ul');
|
|
if (list) list.classList.add('hide');
|
|
|
|
var input = document.querySelector('form[name=' + formname + '] input[name="photobin"]');
|
|
|
|
if (preview.className == 'error') preview.className = '';
|
|
|
|
preview.src = base64;
|
|
|
|
var bin = base64.split(",");
|
|
input.value = bin[1];
|
|
}
|
|
}
|
|
}
|