如何写一个base64解码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))

边界没问题。最后一行的错误信息是

无法将pngImage (type image.Image)转换为类型[]byte

显然,因为一个图像。Image不是字节[]。但是我怎么转换它呢?或者有更简单的版本来做到这一点

使用png.Encode()image.Image编码为文件(io.Writer)。

最后一行应替换为:

err = png.Encode(imgFile, pngImage)

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

也看看这个答案,其中包含一个完整的例子,将图像写入文件(PNG格式):

在Golang?

最新更新