我如何构建一个没有有损画布使用的图像/png 数据 url

问题描述

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

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

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

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

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)