如何将base64编码的png图像写入文件?
How to write a base64 decoded png image to file?
我尝试使用以下代码将 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))
边界没问题。最后一行的错误消息是
cannot convert pngImage (type image.Image) to type []byte
显然,因为 image.Image 不是 byte[]。但是我该如何转换呢?或者是否有更简单的版本来执行此操作。
使用png.Encode()
to encode an image.Image
to a file (io.Writer
).
最后一行应替换为:
err = png.Encode(imgFile, pngImage)
png.Encode()
将生成字节序列并将其发送到指定的 io.Writer
(当然可以是 os.File
),以 PNG 格式描述指定的图像。
另请查看此答案,其中包含将图像写入文件(PNG 格式)的完整示例:
我尝试使用以下代码将 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))
边界没问题。最后一行的错误消息是
cannot convert pngImage (type image.Image) to type []byte
显然,因为 image.Image 不是 byte[]。但是我该如何转换呢?或者是否有更简单的版本来执行此操作。
使用png.Encode()
to encode an image.Image
to a file (io.Writer
).
最后一行应替换为:
err = png.Encode(imgFile, pngImage)
png.Encode()
将生成字节序列并将其发送到指定的 io.Writer
(当然可以是 os.File
),以 PNG 格式描述指定的图像。
另请查看此答案,其中包含将图像写入文件(PNG 格式)的完整示例: