12

現在の週刊誌と互換性のある (またはフォーク可能な) 完全な WebP エンコーダーとデコーダーはどこかにありますか?

標準のpngに匹敵する速度ですか?

4

5 に答える 5

6

WebP のエンコーダーとデコーダーの両方を含む GitHub のこの男によるパッケージがあります: https://github.com/chai2010/webp

readme ファイルから:

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) は、追加の go "image" リポジトリ (bmp/tiff/webP) に webp を追加しました:

https://github.com/golang/image

編集:明らかに、レポにはwebpエンコーダーが含まれていません/リーダーのようです-のみ。

(これまで webp コードをテストしていません。本番環境で使用する前に、さらに 4 回のテストを行う必要があります。)

于 2014-11-27T08:00:47.087 に答える