package main import ( "fmt" "golang.org/x/image/webp" "image/jpeg" "io" "log" "os" "time" ) func main() { var ( inFile io.Reader outFile io.Writer ) iFile, err := os.OpenFile("/home/debuggerx/Pictures/test.webp", os.O_RDONLY, 0) if err != nil { log.Fatal(err) } defer iFile.Close() inFile = iFile oFile, err := os.OpenFile("/home/debuggerx/Pictures/test.jpg", os.O_CREATE|os.O_WRONLY|os.O_APPEND, os.FileMode(0644)) if err != nil { log.Fatal(err) } defer oFile.Close() outFile = oFile startTime := time.Now().UnixNano() m, err := webp.Decode(inFile) endTime := time.Now().UnixNano() fmt.Println((endTime - startTime) / 1e6) if err != nil { log.Fatal(err) } startTime = time.Now().UnixNano() err = jpeg.Encode(outFile, m, &jpeg.Options{Quality: 50}) endTime = time.Now().UnixNano() fmt.Println((endTime - startTime) / 1e6) if err != nil { log.Fatal(err) } }