Files
movim-rs/frontend/scripts/movim_avatar.js
T
2026-10-24 14:03:52 +07:00

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];
}
}
}