У нас есть двоичный файл на клиенте. Это отсканированная страница из книги, которая приходит к клиенту как-то сжатой. У нас есть декодер (на клиенте), который выводит TypedArray, который содержит файл данных BMP. Мы должны сделать это как можно быстрее. Размер BMP составляет около 3000000 байт (после декодирования длина возвращаемого typedArray). Мы пробовали много решений, но на медленных ПК это не сработало. Например, самый быстрый способ, который мы нашли: Мы создаем blob из TypedArray. Создайте URL-адрес этого блоба и укажите его как атрибут src для источника изображения. Для рендеринга 20 страниц потребовалось около 22000 мс. Также мы попытались отобразить его в base64 с данными: URL-адрес, указанный в теге src, также (34000мс). Мы попытались сделать это на холсте. Но есть такие проблемы, как использование drawImage на холсте, для которого требуется загруженный объект изображения. Может быть, как мы можем сделать это с помощью WebGL с аппаратным ускорением?Самый быстрый способ рендеринга bmp-файла
PS В указанное время время декодирования одинаково во всех случаях.
PS Я могу приложить образцы кода, которые мы пробовали.
Если файл такой большой, и вы хотите его полностью загрузить, я не думаю, что есть что делать. Возможно, вы могли бы попытаться изменить подход к проблеме с помощью чего-то вроде [Zoomify] (https://github.com/turban/Leaflet.Zoomify) – MarcoL
Черно-белые страницы. Я не уверен в данных о цвете, но могу проверить заголовок bmp, если это очень важно. –
MarcoCI, Возможно, я смогу перестроить его с низким разрешением? Но я боюсь, что это будет слишком медленно. Потому что нам нужно делать все на клиенте. –