【Go】GoでバイナリからJPEG生成
Goでバイナリでファイルを受け取った際にそのまま加工したい時
結論 bytes パッケージを使おう Go言語 パッケージ bytes
ソースコード
package main import ( "bytes" "fmt" "image" "image/jpeg" "io/ioutil" "os" ) func main() { // ファイルの読み込み buf, _ := ioutil.ReadFile("input.jpg") // バイナリファイルをReaderに読み込み reader := bytes.NewReader(buf) // 画像変換 img, _, err := image.Decode(reader) if err != nil { fmt.Errorf("err %v", err) } // ファイル作成 f, err := os.Create("output.jpg") if err != nil { fmt.Errorf("err %v", err) } defer f.Close() opt := jpeg.Options{ Quality: 90, } // 今回はJPEGだがPNGとかでもできそう if err = jpeg.Encode(f, img, &opt); err != nil { fmt.Errorf("err %v", err) } }