2011-12-01 35 views
6

Geçerli bir haftalık WebP kodlayıcı ve kod çözücü ile uyumlu bir yerde var mı (veya forkable)?WebP kodlayıcı/kod çözücü şu anda

Standart png hızına göre hıza benzer mi?

+0

Ben 2012 yılında o cevap, 2011 yılında bu soruyu kendime sordum ve olabildiğince hızlı beklendiği gibi gitmiyor 2015 WebP gelişiminde başka bir yanıt kabul –

cevap

4

bir kodlayıcı ve bir dekoder için içerir GitHub'dan bu adam tarafından bir paket var WebP: https://github.com/chai2010/webp

beni oku dosyasında Gönderen:;)

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

İlginç. İyi mi ? –

1

this bulundu, ne istediğinizi emin değilim. Ayrıca bir kodlayıcı yok gibi görünüyor + güncel değil wrt geçerli Go yayın/haftalık sürümleri olabilir.

+0

Denedim ama dediğin gibi kodlayıcıdan yoksun ve haftalık olarak derleme yapmıyor. Google Go ekibinin neden Google tarafından tanıtılan görüntü biçimini ihmal ettiği görülmüyor. –

+1

@dystroy: Güncel olmayan kod muhtemelen giderilebilir ve BSD-3 lisansı kolay bir çatal için izin verir, yani kod çözücüyü kopyalamayı ve sonra (muhtemelen önemsiz olmayan) kodlayıcıyı kodlamayı düşünün - başka bir yerde bulamazsınız hazır ve gerçekten ona ihtiyacın var. Ayrıca golang-fındık sormak denemeye değer olabilir. – zzzz

+1

Kodlayıcıyı kendim kodlamak için zamanım olduğunu sanmıyorum ve hatta diğer dillerdeki mevcut kodlayıcıları anlamak için yetkinliklerim bile olmayabilir (C++'yu uzun bir süre içinde yapmadım). Postalama listesinin yarısı muhtemelen bu soruyu burada zaten görmüş olsa da muhtemelen golang-cevherleri soracağım :) –

0

Git Yazarlar aslında (2014/11) onların ek halindeyken karşı webp ekledi "görüntü" Repo (bmp/​​tiff/WebP):

https://github.com/golang/image

DÜZENLEME: Açıkçası repo hiçbirini içermiyor webp kodlayıcı/sadece okuyucu olarak görünüyor.

(şimdiye kadar webp kodu test vermedim. Belki üretimde kullanmadan önce biraz daha fazla zaman 4 test bırakın.)

+0

Burada herhangi bir kodlayıcı görmüyorum. Neyi kaçırıyorum ? –

+0

@destroy: Haklısınız: ayrıca repoda kodlayıcı bulunamadı. – ABri