Кодировщик / декодер WebP на ходу - PullRequest
8 голосов
/ 01 декабря 2011

Есть ли где-нибудь полный кодер и декодер WebP, совместимый с текущим еженедельным (или разветвленным)?

Сравним ли он по скорости со стандартным png?

Ответы [ 4 ]

5 голосов
/ 30 июня 2015

На GitHub есть пакет от этого парня, который включает в себя кодировщик и декодер для WebP: 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)
    }
}
1 голос
/ 27 апреля 2012

OK. После долгих поисков могу сказать, что все еще нет общедоступного кодера, даже если был создан декодер (https://github.com/golang/image/blob/master/webp/decode.go).

1 голос
/ 01 декабря 2011

Найдено это , хотя я не уверен, что это то, что вы хотите.Кроме того, кажется, что отсутствует кодер + он может быть устаревшим по сравнению с текущими версиями Go / еженедельными версиями.

0 голосов
/ 27 ноября 2014

Авторы Go фактически (2014/11) добавили webp к своему дополнительному репо go "image" (bmp / ​​tiff / webP) здесь:

https://github.com/golang/image

РЕДАКТИРОВАТЬ: Очевидно, чтоrepo не содержит никакого кодировщика webp / кажется только для чтения.

(До сих пор не тестировал код webp. Может быть, осталось еще 4 раза проверить перед использованием в производстве.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...