"负载图片" Javascript在上传之前调整图片大小

时间:2015-10-19 20:33:51

标签: javascript performance canvas recursion loadimage

我正在为图片上传开发一个小功能。此图像上传会在客户端上调整所选图片的大小,并上传已调整大小的图像。

这样可行,但浏览器会在" resizes-functional"之间挂起很多东西。 这是我的代码:

    function manageImage(file) {
        if (!file) return;
        var mime = file.type;
        var src = URL.createObjectURL(file);

        loadImage.parseMetaData(file, function (data) {
            var options = { maxWidth: 1920, maxHeight: 1920, canvas: true };
            if (data.exif) {
                options.orientation = data.exif.get('Orientation');
            }
            loadImage(file,
            function (img, test) {

                    loaded++;

                    var formData = new FormData();
                    formData.append("image", dataURI);

                    $.ajax({
                        url: "/URL",
                        data: formData,
                        cache: false,
                        contentType: false,
                        processData: false,
                        async: false,
                        type: "POST",
                        success: function (resp) {


                        }
                    }).error(function () {
                    }).done(function () {
                        if (loaded < checkedFiles.length) {
                                manageImage(files[loaded]);
                        } else {
                            //FINISHED
                        }
                    });

            },
            options);
        });
    }
    manageImage(files[0]);

这个函数是递归的,因为我在迭代时遇到了一些问题(浏览器挂起,内存和cpu使用)。

此外,我正在使用此库获取EXIF数据并在手机上正确定位: https://github.com/blueimp/JavaScript-Load-Image

使用一个或两个选定的图片(例如7MB),它工作得很完美,但我想上传可能50张图片。

如果有人能给我一个线索,那会很棒吗?!

0 个答案:

没有答案