如何将 []byte 对象转换为图像并将其作为 jpeg 图像存储在磁盘上
How to covert a []byte object to an image and store it as a jpeg image on disk
我正在尝试将 []byte 对象转换为图像并将其保存为 Golang 中的 jpeg。我尝试使用图像的 Decode
功能,但它总是 returns <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(...)
,如果你想打印错误信息并在出现任何错误时退出。
我正在尝试将 []byte 对象转换为图像并将其保存为 Golang 中的 jpeg。我尝试使用图像的 Decode
功能,但它总是 returns <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(...)
,如果你想打印错误信息并在出现任何错误时退出。