上传前调整Javascript图像大小

上传前调整Javascript图像大小,javascript,client,image-resizing,Javascript,Client,Image Resizing,我正在尝试调整客户端上的大/大图像大小,并上载较小的图像。这对于一个或十个图像非常有效。但我想上传我的50多张图片。这将工作,但它会减慢我的cpu和内存。调整大小的图像的代码如下所示: var MAX_WIDTH = 1920; var MAX_HEIGHT = 1920; var loaded = 0; var URL = window.URL || window.webkitURL; function loadImage(file) {

我正在尝试调整客户端上的大/大图像大小,并上载较小的图像。这对于一个或十个图像非常有效。但我想上传我的50多张图片。这将工作,但它会减慢我的cpu和内存。调整大小的图像的代码如下所示:

        var MAX_WIDTH = 1920;
    var MAX_HEIGHT = 1920;
    var loaded = 0;
    var URL = window.URL || window.webkitURL;


    function loadImage(file) {
        var mime = file.type;
        var src = URL.createObjectURL(file);

       var img = new Image();

        img.onload = (function (image) {
            return function () {
                var newHeight = MAX_WIDTH;
                var newWidth = MAX_HEIGHT;


                var canvas = document.createElement("canvas");
                var ctx = canvas.getContext("2d");
                ctx.clearRect(0, 0, canvas.width, canvas.height);
                canvas.width = newWidth;
                canvas.height = newHeight;



                ctx.drawImage(image, 0, 0, this.width, this.height, 0, 0, newWidth, newHeight);
                URL.revokeObjectURL(this.src);


                var dataURI = canvas.toDataURL(mime);
                var blob = dataURLToBlob(dataURI);
                imagesToUpload.push(blob);

                loaded++;
                if (loaded < checkedFiles.length) {
                    loadImage(checkedFiles[loaded]);
                } else {
                    //DO UPLOAD
                    input.value = "";
                }
            }
        })(img);
        img.src = src;
        image = null;

    }


    loadImage(checkedFiles[0]);
var MAX_WIDTH=1920;
var最大高度=1920;
var=0;
var URL=window.URL | | window.webkitURL;
函数loadImage(文件){
var mime=file.type;
var src=URL.createObjectURL(文件);
var img=新图像();
img.onload=(函数(图像){
返回函数(){
var newHeight=最大宽度;
var newWidth=最大高度;
var canvas=document.createElement(“canvas”);
var ctx=canvas.getContext(“2d”);
clearRect(0,0,canvas.width,canvas.height);
canvas.width=newWidth;
canvas.height=新高度;
ctx.drawImage(图像,0,0,this.width,this.height,0,0,newWidth,newHeight);
revokeObjectURL(this.src);
var dataURI=canvas.toDataURL(mime);
var blob=dataURLToBlob(dataURI);
imagesToUpload.push(blob);
加载++;
如果(已加载
在调整大小和上传时,我想显示一个正在加载的动画。这个过程非常缓慢

我认为问题在于调整画布对象上图像的大小,但我不知道如何解决这个问题

最大图片高度为1920像素,最大图片高度为1920像素

如果有人能给我一个线索就好了