Go Base64 图像解码
使用 HTML5 画布时,通常会获取 Base64 编码的图像数据 URL。这些字符串包含数据前缀和 Base64 编码的图像数据本身。
问题:
常见的一个问题是在以下情况下出现“未知图像格式”错误:尝试使用解码 Base64 编码的图像image.DecodeConfig().
解决方案
1.注册图像格式处理程序:
image.DecodeConfig() 函数仅识别在执行之前注册了处理程序的图像格式。对于经常遇到的PNG图片,导入image/png包:
import _ "image/png"
通过导入该包,注册了PNG格式处理程序,让image.DecodeConfig()成功解码PNG图片。
2。删除数据前缀:
解码前应删除数据 URL 中的数据前缀(例如 data:image/png;base64,)。更有效的方法是对输入字符串进行切片:
input := "data:image/png;base64,iVkhdfjdAjdfirtn=" b64data := input[strings.IndexByte(input, ',')+1:]
此切片操作会创建一个新的字符串标头,而不复制数据,从而提高性能。
一旦格式化注册处理程序并删除数据前缀后,image.DecodeConfig() 可以成功解码 PNG 图像并提供其宽度和高度信息。
以上是如何在 Go 中正确解码 Base64 编码的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!