Есть ли способ нарисовать частично загруженные объекты прогрессивного изображения (PNG, JPG) на холсте?
Большинство браузеров поддерживают прогрессивную загрузку в теге, но я не могу найти, как ею можно управлять внутри холста.
Есть ли способ нарисовать частично загруженные объекты прогрессивного изображения (PNG, JPG) на холсте?
Большинство браузеров поддерживают прогрессивную загрузку в теге, но я не могу найти, как ею можно управлять внутри холста.
Ответ - нет, согласно заказам спецификации.
Если браузер делает это, это противоречит спецификации, которая гласит:
Если изображение еще не полностью декодировано, то ничего не рисуется.
Когда элемент img находится в полностью доступном состоянии и пользовательский агент может декодировать мультимедийные данные без ошибок, тогда говорят, что элемент img полностью декодируемый.
Вы можете взглянуть на библиотеку streamingtexture js, в которой используется пользовательское декодирование прогрессивных изображений JPEG (через версию Emscripten для libjpeg) и возвращать содержимое изображения в виде массива байтов.
Этот метод используется с WebGL, но может также использоваться для 2D-холста и расширен для поддержки GIF, PNG и WebP.