説明
JPEG画像をPNG形式で保存するには必要なパッケージ(image, image/png, image/jpeg)を読み込ませます。osパッケージのOpen()メソッドを使って読み込むJPEG形式の画像があるパスを指定し開きます。無事に開くことができたら、imageパッケージのDecode()メソッドを使ってJPEG画像を展開(デコード)します。
次にPNG画像の保存先とファイル名をCreate()メソッドを使って生成します。ファイルが正常に作成されたらjpegパッケージのEncode()メソッドを使って画像を保存します。PNG形式は保存オプションはありません。
package main
import (
"fmt"
"image"
"os"
"image/png"
_ "image/jpeg"
)
func main() {
// 開くファイル名
file, err := os.Open("/images/test.jpg")
if err != nil {
fmt.Println("ファイルが開けませんでした。")
os.Exit(1)
}
defer file.Close()
// JPEG画像を解析(デコード)する
m, _, err := image.Decode(file)
if err != nil {
fmt.Println("画像を解析できませんでした。")
os.Exit(1)
}
// 保存するファイル名
savefile, err := os.Create("/images/test123.png")
if err != nil {
fmt.Println("保存するためのファイルが作成できませんでした。")
os.Exit(1)
}
defer savefile.Close()
// PNG形式で保存する
png.Encode(savefile, m)
}