如何将base64解码的png图像写入文件?

Mic*_*ael 1 base64 png file decoder go

我尝试使用以下代码将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 [].但是我该如何转换呢?或者甚至有一个更简单的版本来做到这一点.

icz*_*cza 5

使用png.Encode()一个编码image.Image到一个文件中(io.Writer).

最后一行应替换为:

err = png.Encode(imgFile, pngImage)
Run Code Online (Sandbox Code Playgroud)

png.Encode()将产生并发送字节序列到指定的io.Writer(os.File当然可以是这样),描述PNG格式的指定图像.

另请查看此答案,其中包含将图像写入文件的完整示例(PNG格式):

在Golang中绘制一个矩形?