проблема с reader.onload для изменения размера изображения - PullRequest
1 голос
/ 09 февраля 2020

У меня есть функция изменения размера изображения, при использовании этой функции я получаю пустую строку "", а reader.onload не запускается, сначала я хочу запустить reader.onload, как я могу это исправить?

    function Ds_JsImgResize( Filereq,MaxWidth , MaxHeight) {
    if (Filereq.files.length != 0) {
        AjaxBegin();
        var file = Filereq.files[0];
        var file_type = file.type;
        if (file_type && file_type.substr(0, 5) == "image") {

            var img = document.createElement("img");
            var reader = new FileReader();
            reader.onload = function (e)
            {
                debugger
                img.src = e.target.result;
                img.onload = function (imageEvent) {                       
                    var MAX_WIDTH = MaxWidth;//300;
                    var MAX_HEIGHT = MaxHeight;//300;
                    var width = img.naturalWidth;
                    var height = img.naturalHeight;
                    //resize the image if it higher than MAX_WIDTH or MAX_HEIGHT
                    if ((width > MAX_WIDTH) || (height > MAX_HEIGHT)) {
                        if ((width / height) > (MAX_WIDTH / MAX_HEIGHT)) {
                            height *= MAX_WIDTH / width;
                            width = MAX_WIDTH;
                        }
                        else {
                            width *= MAX_HEIGHT / height;
                            height = MAX_HEIGHT;
                        }
                        var canvas = document.createElement("canvas");
                        canvas.width = width;
                        canvas.height = height;
                        var ctx = canvas.getContext("2d");
                        ctx.drawImage(img, 0, 0, width, height);

                        //following two lines saves the image
                        var image = canvas.toDataURL("image/png");


                       // $('#PicPic').attr('src', image);


                        AjaxComplete();
                        return image;
                       // DsformData.append('PicV', image);
                        //Ds_IM_JsCallAjax_async(DsformData, 'LC_Prof_IM_JsSabt_AfterAjax');
                       // return 0;
                    }
                };

            };
            AjaxComplete();
            reader.readAsDataURL(file);

        }
        AjaxComplete();
        return "";
    }
    AjaxComplete();
    return "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...