Как преобразовать объект байта [] в изображение и сохранить его как изображение JPEG на диске - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь преобразовать объект байта [] в изображение и сохранить его в формате JPEG в Golang.Я пытался использовать 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)
   }
}

1 Ответ

0 голосов
/ 23 октября 2018

Вы не передаете 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(...), если хотите распечатать сообщение об ошибке и выйти в случае любой ошибки.

...