如何将 []byte 对象转换为图像并将其作为 jpeg 图像存储在磁盘上

问题描述 投票:0回答:2

我正在尝试将 []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)
   }
}
image go jpeg
2个回答
7
投票

你不是传

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(...)
,如果你想打印错误信息并在出现任何错误时退出。


0
投票

猜猜这就是你真正想要的:

err = ioutil.WriteFile(path, bt, 0644)
© www.soinside.com 2019 - 2024. All rights reserved.