Является ли более выгодным использование элемента 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 минимизируется или удаляется каким-либо образом для экономии памяти?
В качестве дополнительного вопроса, если я все-таки хотел, чтобы это на холсте выполняла обработку изображений, или есть какой-то более эффективный способ получения файла на холст?