是否有某个完整的WebP编码器和解码器与当前的每周(或可分叉)兼容?
速度是否与标准png相当?
答案 0 :(得分:4)
这个人在GitHub上有一个包,包括编码器和WebP的解码器: https://github.com/chai2010/webp
来自自述文件:
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)
}
}
答案 1 :(得分:1)
找到了this,虽然我不确定这是不是你想要的。此外,它似乎缺少一个编码器+它可能已经过时了当前的Go版本/每周版本。
答案 2 :(得分:1)
行。 经过长时间的搜索,我可以说即使编写了解码器(https://github.com/golang/image/blob/master/webp/decode.go),仍然没有公开的编码器。
答案 3 :(得分:1)
对于那些正在寻找更多使用webp解码器/编码器的软件包的人。
在提到的@orcaman包旁边,还有:
https://godoc.org/github.com/harukasan/go-libwebp/webp
https://github.com/harukasan/go-libwebp
有一段时间没有更新,但是使用本地安装的libwebp。
答案 4 :(得分:0)
Go Authors实际上(2014/11)将webp添加到他们的附加go" image" repo(bmp / tiff / webP):
https://github.com/golang/image
编辑:显然,repo不包含任何webp编码器/似乎只是读者。(到目前为止,Haven还没有对网络代码进行过测试。在生产中使用之前,可能需要多花些时间进行4次测试。)