2011-12-01 8 views
6

WebPのエンコーダとデコーダは、現在の週単位(またはフォーク可能)と互換性がありますか?WebPエンコーダ/デコーダin go

標準のpngに匹敵するスピードですか?

+0

私は早く期待通りに行っていない、2011年にこの質問をした2012年に、それを自分自身に答えて2015 WEBPの開発に別の答えを受け入れました;) –

答えて

4

エンコーダとデコーダのための両方を含んでGitHubの上でこの男によってパッケージがありますWEBP:readmeファイルから 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) 
    } 
} 
+0

興味深い。いいですか? –

1

見つけたthis、私はそれがあなたが望むものかどうかはわかりませんが。また、エンコーダが不足していると思われます+現在のGoリリース/週刊バージョンでは古くなっている可能性があります。

+0

私はそれを試しましたが、あなたが言ったようにエンコーダが欠けており、毎週コンパイルしません。 Google GoチームがGoogleが推進する画像フォーマットを無視しているように見える理由はわかりません。 –

+1

@dystroy:時代遅れのコードはgofixableでBSD-3ライセンスは簡単なフォークを可能にします。つまり、デコーダをリッピングして、エンコーダをコードすることを考えてください。あなたは本当にそれが必要です。また、ゴランナッツにお尋ねすることは試してみる価値があるかもしれません。 – zzzz

+1

私は自分でエンコーダをコーディングする時間がないと思うし、他の言語の既存のエンコーダを理解する能力を持っていないことさえあります。メーリングリストの半分がすでにこの質問を既に見ているとしても、おそらくgolang-nutsに尋ねるでしょう:) –

0

ゴー作家(11分の2014)は、ここで彼らの追加、外出先 "画像" レポ(BMP/TIFF/WEBP)にWEBPを追加しました:

https://github.com/golang/image

EDIT:明らかレポはいずれも含まれていませんがwebpエンコーダ/読者専用です。

(これまでWEBPコードをテストしていません。たぶん4の試験生産に使用する前に、いくつかのより多くの時間を残す。)

+0

私はここにエンコーダがありません。私は何が欠けていますか? –

+0

@destroy:あなたは完全に正しいです:また、レポにエンコーダが見つかりませんでした。 – ABri