摘要:假设我在浏览器中使用画布元素绘制了一个白色笑脸。当我在 Safari 中通过 js/ajax(使用 toDataUrl('image/png') )从这个画布生成一个图像字符串以 POST 到 PHP 服务器时,使用 PHP 函数 imagecreatefromstring() 和 imagepng() 在服务器上创建的图像是正确的高度和宽度,但它都是白色的,而不是浏览器中画布上的笑脸。
我正在从 base64_decoding 之前的字符串中剥离“data:image/png;base64”并保存到图像文件中。
此方法在 FF 和 Chrome 中完美运行。
toDataUrl 在 js 中生成的 base64 编码字符串经过验证与服务器正在接收的字符串相同,因此在传输中不会被切断。
当我将图像字符串从 toDataUrl() 加载到任何浏览器时,它会按预期显示绘制的图像。但是,在服务器上生成的 newimage.png 完全是白色的。
Safari 将图像编码为需要在服务器上考虑的 base64 字符串有什么不同吗?如果是这样,它不能太激烈,因为任何浏览器都能够从图像字符串中呈现正确的笑脸。
如果您需要更多信息,请随时告诉我。
先感谢您!
编辑:这可能与 Safari 如何存储透明度有关吗?