parent
7430f2cbfa
commit
fb5d8a6b3d
@ -0,0 +1,51 @@
|
|||||||
|
package webp_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"image"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/harukasan/go-libwebp/test/util"
|
||||||
|
"github.com/harukasan/go-libwebp/webp"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestEncodeAnimation(t *testing.T) {
|
||||||
|
data := util.ReadFile("cosmos.webp")
|
||||||
|
aWebP, err := webp.DecodeRGBA(data, &webp.DecoderOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Got Error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
img := []image.Image{
|
||||||
|
util.ReadPNG("butterfly.png"),
|
||||||
|
util.ReadPNG("checkerboard.png"),
|
||||||
|
util.ReadPNG("yellow-rose-3.png"),
|
||||||
|
aWebP,
|
||||||
|
}
|
||||||
|
|
||||||
|
width, height := 24, 24
|
||||||
|
anim, err := webp.NewAnimationEncoder(width, height, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("initializing decoder: %v", err)
|
||||||
|
}
|
||||||
|
defer anim.Close()
|
||||||
|
|
||||||
|
for i, im := range img {
|
||||||
|
// all frames of an animation must have the same dimensions
|
||||||
|
cropped := im.(interface {
|
||||||
|
SubImage(r image.Rectangle) image.Image
|
||||||
|
}).SubImage(image.Rect(0, 0, width, height))
|
||||||
|
|
||||||
|
if err := anim.AddFrame(cropped, 100*time.Millisecond); err != nil {
|
||||||
|
t.Errorf("adding frame %d: %v", i, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buf, err := anim.Assemble()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("assembling animation: %v", err)
|
||||||
|
}
|
||||||
|
if len(buf) == 0 {
|
||||||
|
t.Errorf("assembled animation is empty")
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue