我正在尝试将 []byte 对象转换为图像并将其保存为 Golang 中的 jpeg。我尝试使用图像的
Decode
功能,但它总是返回<nil>
。
func saveFrames(imgByte []byte) {
img, _, _ := image.Decode(bytes.NewReader(imgByte))
out, err := os.Create("./img.jpeg")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = jpeg.Encode(out, img)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
你不是传
Options
,给jpeg.Encode
,你也可以设置为nil。
func serveFrames(imgByte []byte) {
img, _, err := image.Decode(bytes.NewReader(imgByte))
if err != nil {
log.Fatalln(err)
}
out, _ := os.Create("./img.jpeg")
defer out.Close()
var opts jpeg.Options
opts.Quality = 1
err = jpeg.Encode(out, img, &opts)
//jpeg.Encode(out, img, nil)
if err != nil {
log.Println(err)
}
}
如果打开,不要忘记关闭任何文件。
你可以使用
log.Fatalln(...)
,如果你想打印错误信息并在出现任何错误时退出。
猜猜这就是你真正想要的:
err = ioutil.WriteFile(path, bt, 0644)