12

是否有与当前每周(或可分叉)兼容的完整 WebP 编码器和解码器?

它的速度可以与标准 png 相媲美吗?

4

5 回答 5

6

这个人在 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)
    }
}
于 2015-06-30T16:01:58.250 回答
4

好的。经过长时间的搜索,我可以说即使制作了解码器(https://github.com/golang/image/blob/master/webp/decode.go),仍然没有公开可用的编码器。

于 2012-04-27T13:34:24.790 回答
1

找到了这个,虽然我不确定它是否是你想要的。此外,它似乎缺少编码器 + 它可能已经过时了当前的 Go 版本/每周版本。

于 2011-12-01T12:47:41.433 回答
1

Go 作者实际上(2014/11)在此处将 webp 添加到了他们的附加 go“图像”存储库(bmp/tiff/webP)中:

https://github.com/golang/image

编辑:显然 repo 不包含任何 webp 编码器/似乎是读者 - 只有。

(到目前为止还没有测试过 webp 代码。在生产中使用之前可能要多留一些时间 4 测试。)

于 2014-11-27T08:00:47.087 回答
1

对于那些正在寻找更多带有 webp 解码器/编码器的软件包的人。

除了提到的@orcaman 包之外,还有:

https://godoc.org/github.com/harukasan/go-libwebp/webp

https://github.com/harukasan/go-libwebp

有一段时间没有更新,但使用本地安装的 libwebp。

于 2020-06-11T11:19:27.773 回答