Тема: Canvas и jQuery
Показать сообщение отдельно
  #7 (permalink)  
Старый 16.11.2014, 18:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Makkssimka
а если в функции img.onload удалять переменную?
И как это поможет? В js не надо ничего удалять - сборщик мусора сам разберется.

Лучше всего вынести все в функцию:

function createCanvas(src) {
    var canvas = $('<canvas/>', {width: 0, height: 0}).get(0);
    var context = canvas.getContext("2d");

    var image = new Image();
    image.onload = function(){
        var width = image.width;
        var height = image.height;
         
        if (height > width){
            heightRe = 1080;
            widthRe = (heightRe*width) / height;
        }
        else {
            widthRe = 1920;
            heightRe = (height*widthRe) / width;
        }

        canvas.width = widthRe;
        canvas.height = heightRe;
        context.drawImage(image, 0, 0, widthRe, heightRe);
    };
    image.src = src;

    return canvas;
}

$('#image').change(function(){
    var files = this.files;
    for (var i = 0; i < files.length; i++){
        var fileURL = getBlobURL(files[i]);
        var canvas = createCanvas(fileURL);
        $("#canvasList").append(canvas);
    }
});


Сообщение от Makkssimka
$(this)[0].files
Как можно было до такой хуйни додуматься??
А почему не так тогда уж: $($($(this)[0])[0])[0] - так посолидней смотрится ведь, правда?
__________________
В личку только с интересными предложениями
Ответить с цитированием