WebP encoder / decoder in go

Is there somewhere a complete WebP encoder and decoder compatible with the current weekly (or forkable)?

Is it comparable in speed to the standard png one?

+6
source share
4 answers

GitHub has a package for this guy that includes both an encoder and a decoder for WebP: https://github.com/chai2010/webp

From the readme file:

package main import ( "bytes" "fmt" "io/ioutil" "log" "github.com/chai2010/webp" ) func main() { var buf bytes.Buffer var width, height int var data []byte var err error // Load file data if data, err = ioutil.ReadFile("./testdata/1_webp_ll.webp"); err != nil { log.Println(err) } // GetInfo if width, height, _, err = webp.GetInfo(data); err != nil { log.Println(err) } fmt.Printf("width = %d, height = %d\n", width, height) // GetMetadata if metadata, err := webp.GetMetadata(data, "ICCP"); err != nil { fmt.Printf("Metadata: err = %v\n", err) } else { fmt.Printf("Metadata: %s\n", string(metadata)) } // Decode webp m, err := webp.Decode(bytes.NewReader(data)) if err != nil { log.Println(err) } // Encode lossless webp if err = webp.Encode(&buf, m, &webp.Options{Lossless: true}); err != nil { log.Println(err) } if err = ioutil.WriteFile("output.webp", buf.Bytes(), 0666); err != nil { log.Println(err) } } 
+4
source

Found this one , although I'm not sure if this is what you want. In addition, it seems that the encoder + is missing, it may be outdated by current versions of Go / weekly.

+1
source

OK After a long search, I can say that there is still no publicly available encoder, even if a decoder was made ( https://github.com/golang/image/blob/master/webp/decode.go ).

+1
source

The Go Authors actually (2014/11) added webp to their additional call to "image" repo (bmp / ​​tiff / webP) here:

https://github.com/golang/image

EDIT: Obviously, the repo does not contain any webp encoder /, it seems, is only for the reader.

(I have not tested the web code so far. Perhaps you need to do some more testing 4 before using it in production.)

0
source

Source: https://habr.com/ru/post/902835/


All Articles