是否有与当前每周(或可分叉)兼容的完整 WebP 编码器和解码器?
它的速度可以与标准 png 相媲美吗?
这个人在 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)
}
}
好的。经过长时间的搜索,我可以说即使制作了解码器(https://github.com/golang/image/blob/master/webp/decode.go),仍然没有公开可用的编码器。
找到了这个,虽然我不确定它是否是你想要的。此外,它似乎缺少编码器 + 它可能已经过时了当前的 Go 版本/每周版本。
Go 作者实际上(2014/11)在此处将 webp 添加到了他们的附加 go“图像”存储库(bmp/tiff/webP)中:
https://github.com/golang/image
编辑:显然 repo 不包含任何 webp 编码器/似乎是读者 - 只有。
(到目前为止还没有测试过 webp 代码。在生产中使用之前可能要多留一些时间 4 测试。)
对于那些正在寻找更多带有 webp 解码器/编码器的软件包的人。
除了提到的@orcaman 包之外,还有:
https://godoc.org/github.com/harukasan/go-libwebp/webp
https://github.com/harukasan/go-libwebp
有一段时间没有更新,但使用本地安装的 libwebp。