如何将base64解码的png图像写入文件?
问题描述:
我尝试写一个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))
的界限都OK。最后一行的错误消息是
不能转换pngImage(类型image.Image)至显然键入[]字节
,因为image.Image不是字节[]。但是,我该如何转换它?还是有更简单的版本来做到这一点。
答
使用png.Encode()
将image.Image
编码为文件(io.Writer
)。
最后一行应替换:
err = png.Encode(imgFile, pngImage)
png.Encode()
将产生和发送该字节序列到指定io.Writer
(其可以是当然的os.File
),描述在PNG格式的指定的图像。
还检查了这个答案包含一个完整的例子写一个图像文件(PNG格式):
你,你需要有解码后的图像?将数据直接写入文件要快得多。如果你只想要边界,你可以使用DecodeConfig。 – JimB