modulepackage
0.0.0-20240109104518-489f3429f5c5
Repository: https://github.com/iwind/gowebp.git
Documentation: pkg.go.dev
# README
webp
██╗ ██╗███████╗██████╗ ██████╗
██║ ██║██╔════╝██╔══██╗██╔══██╗
██║ █╗ ██║█████╗ ██████╔╝██████╔╝
██║███╗██║██╔══╝ ██╔══██╗██╔═══╝
╚███╔███╔╝███████╗██████╔╝██║
╚══╝╚══╝ ╚══════╝╚═════╝ ╚═╝
Benchmark
Install
Install GCC
or MinGW
(download here) at first,
and then run these commands:
go get github.com/chai2010/webp
go run hello.go
Example
This is a simple example:
package main
import (
"bytes"
"fmt"
"io/ioutil"
"log"
"github.com/iwind/gowebp"
)
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 = gowebp.GetInfo(data); err != nil {
log.Println(err)
}
fmt.Printf("width = %d, height = %d\n", width, height)
// GetMetadata
if metadata, err := gowebp.GetMetadata(data, "ICCP"); err != nil {
fmt.Printf("Metadata: err = %v\n", err)
} else {
fmt.Printf("Metadata: %s\n", string(metadata))
}
// Decode webp
m, err := gowebp.Decode(bytes.NewReader(data))
if err != nil {
log.Println(err)
}
// Encode lossless webp
if err = gowebp.Encode(&buf, m, &gowebp.Options{Lossless: true}); err != nil {
log.Println(err)
}
if err = ioutil.WriteFile("output.webp", buf.Bytes(), 0666); err != nil {
log.Println(err)
}
fmt.Println("Save output.webp ok")
}
Decode and Encode as RGB format:
m, err := webp.DecodeRGB(data)
if err != nil {
log.Fatal(err)
}
data, err := webp.EncodeRGB(m)
if err != nil {
log.Fatal(err)
}
Notes
Change the libwebp to fast method:
internal/libwebp/src/enc/config.c
WebPConfigInitInternal
config->method = 0; // 4;
BUGS
Report bugs to [email protected].
Thanks!
# Functions
m is MemP or image.Image.
AsPixSilce convert a normal slice to byte slice.
No description provided by the author
No description provided by the author
No description provided by the author
DecodeGrayToSize decodes a Gray image scaled to the given dimensions.
No description provided by the author
No description provided by the author
DecodeRGBAToSize decodes a Gray image scaled to the given dimensions.
DecodeRGBToSize decodes an RGB image scaled to the given dimensions.
No description provided by the author
No description provided by the author
EncodeExactLosslessRGBA Encode lossless RGB mode with exact.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
GetMetadata return EXIF/ICCP/XMP format metadata.
No description provided by the author
No description provided by the author
NewRGB48Image returns a new RGB48Image with the given bounds.
No description provided by the author
NewRGBImage returns a new RGBImage with the given bounds.
No description provided by the author
NewWebpAnimation Initialize animation.
SetMetadata set EXIF/ICCP/XMP format metadata.
No description provided by the author
No description provided by the author
No description provided by the author
# Constants
See https://github.com/chai2010/image.
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Interfaces
No description provided by the author
MemP Image Spec (Native Endian), see https://github.com/chai2010/image.
No description provided by the author
# Type aliases
No description provided by the author