【发布时间】:2019-09-30 21:54:07
【问题描述】:
我有一个应用程序可以从 HTML 画布上的绘图生成 base64 png。
我发现在使用滴管扩展程序查看颜色时,Chrome 和 Firefox 之间的颜色不同。 这两种浏览器的颜色都与我在画布上绘制的实际颜色不完全匹配(Chrome 匹配一种颜色)。
首先,我在 Firefox 的画布上绘制,得到 base64 png 字符串。
我在 Chrome 和 Firefox 中都在这里解码了 base64:http://freeonlinetools24.com/base64-image
请注意,我解码了完全相同的 base64 字符串(在 FF 中生成),但解码时得到了 2 个不同的结果图像。
您可以使用任何颜色选择器扩展来查看颜色十六进制代码或 RGB 值的差异。
这里是所有颜色,包括我在画布上实际绘制的十六进制代码,以及 Chrome 和 Firefox 观察到的十六进制代码。背景是透明的,所以灰色/黑色只是浏览器显示透明度的不同。
橙色:
- 预期:#ff7f0e
- Chrome:#ff7f0c(关闭)
- 火狐:#f08327
蓝色:
- 预期:#1f77b4
- Chrome:#1f77b4(匹配)
- 火狐:#3877b1
绿色:
- 预期:#2ca02c
- Chrome:#2ca02b(关闭)
- 火狐:#549d39
红色:
- 预期:#d62728
- 铬:#d62627(关闭)
- 火狐:#c4352b
我不明白为什么 base64 png 不会在任何浏览器中变成完全相同的 RGB 值。
我可以做些什么来使 canvas.getDataURL() 方法返回一个 base64 png,它的颜色与绘制在上面的颜色相匹配?
【问题讨论】:
标签: javascript canvas html5-canvas base64 png