Use webp.Encode to convert a Go image.Image into a WebP file. You must provide encoder options, which can be created using encoder.NewLossyEncoderOptions or encoder.NewLosslessEncoderOptions.
Example of encoding a JPEG image into a lossy WebP file:
package main
import (
"github.com/kolesa-team/go-webp/encoder"
"github.com/kolesa-team/go-webp/webp"
"image/jpeg"
"log"
"os"
)
func main() {
file, err := os.Open("test_data/images/source.jpg")
if err != nil {
log.Fatalln(err)
}
img, err := jpeg.Decode(file)
if err != nil {
log.Fatalln(err)
}
output, err := os.Create("example/output_decode.webp")
if err != nil {
log.Fatal(err)
}
defer output.Close()
options, err := encoder.NewLossyEncoderOptions(encoder.PresetDefault, 75)
if err != nil {
log.Fatalln(err)
}
if err := webp.Encode(output, img, options); err != nil {
log.Fatalln(err)
}
}