Является ли более эффективным использование памяти для загрузки изображения на холст или с помощью URL.convertToDataURL для применения src - PullRequest
0 голосов
/ 23 марта 2019

Является ли более выгодным использование элемента canvas в качестве буфера для изображения или более выгодно использовать элемент img в качестве буфера? это самая близкая вещь к тому, что я спрашиваю, кроме случая использования немного отличается. В настоящее время я получаю файл, например:

let file=document.getElementById("input").files[0];

Затем, используя URL.createObjectURL(file);, его можно вставить в атрибут src <img />.

У меня такое ощущение, что если вместо этого использовать холст и рисовать из файлового объекта, потребуется меньше памяти. За исключением того, что кажется, что в большинстве примеров изображение все еще используется как посредник.

Ex.

let image = document.getElementById("image");
let canvas = document.getElementById("canvas");
canvas.drawImage(image,0,0);
image.parentNode.deleteChild(image);

В этом примере я использую медленный DOM (в данном случае скорость не имеет значения), я бы, вероятно, использовал объект временного изображения, как и все остальные.

Вопрос в том, будет ли вообще полезен переход на дополнительный шаг и помещение данных на холст или браузер выполняет какую-то оптимизацию, когда URL-адрес большого двоичного объекта src минимизируется или удаляется каким-либо образом для экономии памяти?

В качестве дополнительного вопроса, если я все-таки хотел, чтобы это на холсте выполняла обработку изображений, или есть какой-то более эффективный способ получения файла на холст?

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