0

在浏览器中,我想读入一个 png 文件,获取它的数据,修改它,然后将其写回。(隐写术使用)

数据与 Canvas 的 imageData 基本相同:宽度、高度整数和一个 Uint8Array 的图像像素(每个 4 字节)

由于 alpha-premultiply,我无法使用各种 Canvas 特技。所以我想直接从我拥有的数据中创建一个 dataUrl。

我尝试简单地制作一个由 4 个宽度字节、4 个高度字节和数据字节组成的新 Uint8Array,并使用字符串化 Uint8Array 的明显的 'data:image/png;base64,' + btoa base64。

我用两个像素的数据做到了这一点,然后将它与具有相同数据的 canvas.toDataURL() 进行了比较。我使用 255 的 alpha 来避免失真。

生成的两个 dataUrls base64 不相同。显然base64中包含元数据或一些类似的差异。

那么有没有办法像这样“手动”创建图像/png dataURL?

4

0 回答 0