Я пытаюсь загрузить несколько изображений с предварительным просмотром и немедленно сжать их, но он все равно загружается на сервер без сжатия, я запутался в том, что я делаю не так, пожалуйста, помогите) очень ценю вот мой код:
var output_format = 'jpg';
$(document).ready(function () {
if (window.File && window.FileList && window.FileReader) {
$("#files").on("change", function (e) {
var jic = {
compress: function(source_img_obj, quality, output_format){
var mime_type = "image/jpeg";
if(typeof output_format !== "undefined" && output_format=="png"){
mime_type = "image/png";
};
var cvs = document.createElement('canvas');
cvs.width = source_img_obj.naturalWidth;
cvs.height = source_img_obj.naturalHeight;
var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0);
var newImageData = cvs.toDataURL(mime_type, quality/100);
var result_image_obj = new Image();
result_image_obj.src = newImageData;
return result_image_obj;
},
}
var files = e.target.files;
for (var i = 0; i < files.length; i++) {
var f = files[i];
var fileReader = new FileReader();
fileReader.onload = (function (e) {
$("#mainPicturesContainer").append("<div class=\"puctureContainer\">" +
"<img id=\"source_image\" src=\"" + e.target.result + "\" class=\"projectPictures\" style=\"height: inherit\">" +
"<div class=\"editPanel\">" +
"<button type=\"button\" onclick=\"deleteRestorePicture(this)\">Удалить</button>" +
"</div>" +
"</div>");
});
fileReader.readAsDataURL(f);
var quality = 30;
var text = document.getElementById("source_image");
f.src = jic.compress(text, quality, output_format );
}
$("#infoAboutPictures").innerHTML = "";
}
);
} else {
alert("Your browser doesn't support to File API")
}
});