如何将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 格式)的完整示例: