我尝试实施toDataURL
,这就是我所做的:
rgba
数据编码为base64使用编码器。但结果与标准canvas.toDataURL
的输出不同。到目前为止,我认为问题可能是rgba
数据。但我不确定。
以下是codepen
上的演示修改
在研究png算法上花了一些时间之后,我尝试实现它,但数据问题又出现了。
根据png规范,我可以将rgba
用作IDAT
的数据部分,同时将color type
的{{1}}设置为IHDR
,将6
设置为depth
{1}}。然后我通过解码来分析img的base64代码(你可以找到登录演示),一切顺利但数据长度。
图片显示8
的长度仅 30 ,但画布的IDAT
输出的数据长度 100 。
为什么getImageData
中的rgba
数据与base64
的数据不同?