从 HTML5 canvas 重建原始 16 位原始像素数据

Reconstruct original 16-bit Raw pixel data from the HTML5 canvas

如果将 16 位单通道(灰度)原始像素数据无损编码为图像格式(e.g.PNG、Webp、Jpeg-2000 或 JPEG-XR)并将图像渲染为 HTML5 canvas,那么有什么方法可以从 canvas 中检索原始的 16 位原始像素数据?

没有

当绘制到 canvas 时,图像未压缩,所有像素数据都被预乘并转换为 24 位数据 + 8 位 alpha 通道 (RGBA)。
在此过程中,由于各种舍入误差,图像丢失了原始图像的所有内容,即使对于相同颜色深度的原始图像也是如此(参见 Canvas fingerprinting。)

所以即使是无损格式在 canvas 上也是松散的。

如果您需要原始数据,您需要自己编写一个解析器并将您的图像文件直接视为 arrayBuffer。