Если 16-битные одноканальные (оттенки серого) необработанные пиксельные данные без потерь закодированы в формат изображения (например, PNG, Webp, Jpeg-2000 или JPEG-XR) и изображение, отрендеренное на холсте HTML5, то есть ли способ получить исходный 16 -bit Необработанные пиксельные данные с холста?
Реконструировать исходные 16-битные необработанные пиксельные данные из холста HTML5.
comment
Вы нашли ответ на это?
- person Fapaz   schedule 02.09.2020
Ответы (1)
No.
При рисовании на холст изображение не сжимается, а все данные пикселей предварительно умножаются и преобразуются в 24-битные данные + 8-битный альфа-канал (RGBA).
В этом процессе изображение теряет все из оригинал, даже для исходного изображения с одинаковой глубиной цвета из-за различных ошибок округления (см. отпечатки пальцев холста).
Таким образом, даже форматы без потерь плохо смотрятся на холсте.
Если вам нужны необработанные данные, вам нужно будет написать анализатор самостоятельно и обрабатывать файлы изображений напрямую как arrayBuffer.
person
Kaiido
schedule
14.04.2017
Согласовано. Но я провел несколько тестов, таких как преобразование 8-битных монохромных и RGB-изображений в PNG и рендеринг их на холст. Затем после извлечения с использованием API getImageData выдает 32-битный RGBa (необработанные данные изображения). При сравнении с исходным необработанным изображением (конечно, игнорируя альфа-канал в случае RGB и беря только пиксельные данные одного канала в случае 8-битного монохромного изображения), оно фактически совпадало. Однако исходные необработанные значения пикселей изображения являются только целыми числами. Есть ли шансы, что результирующее изображение будет другим в указанном случае?
- person Kalpesh Mahajan; 17.04.2017