我目前正在从类似这样的画布中获取 base64 图像数据 url(不是我获取的 dataurl 只是为了显示字符串的样子)
data:image/png;base64,iVkhdfjdAjdfirtn=
Run Code Online (Sandbox Code Playgroud)
我需要解码该图像以检查图像的宽度和高度
dataurl := strings.Replace(req.PostFormValue("dataurl"), "data:image/png;base64,", "", 1)
reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(dataurl))
c, _, err := image.DecodeConfig(reader)
if err != nil {
log.Fatal(err)
}
log.Println(c.Width)
Run Code Online (Sandbox Code Playgroud)
但是我在尝试解码配置时遇到错误
Unknown image format
Run Code Online (Sandbox Code Playgroud)
所以是的,我制作 dataurl 的方式一定是错误的,但不知道该怎么做。我也试过传递完整的 dataurl (with data:image...) 仍然没有成功
我尝试使用以下代码将base64 png图像写入文件:
imageReader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(Images[i]))
pngImage, _, err := image.Decode(imageReader)
if err != nil {
beego.Error(err)
}
bounds := pngImage.Bounds()
if imgFile, err = os.Create(fileName + ".png"); err != nil {
return Data{}
}
defer imgFile.Close()
_, err = imgFile.Write([]byte(pngImage))
Run Code Online (Sandbox Code Playgroud)
界限还可以.最后一行的错误消息是
无法将pngImage(type image.Image)转换为type [] byte
显然,因为image.Image不是byte [].但是我该如何转换呢?或者甚至有一个更简单的版本来做到这一点.