diff --git a/encoder.go b/encoder.go index ad2ecca..df97fde 100644 --- a/encoder.go +++ b/encoder.go @@ -165,8 +165,11 @@ func webpEncoder(p1, p2 string, quality int, extraParams ExtraParams) error { var buf []byte var boolFalse vips.BoolParameter boolFalse.Set(false) + var intMinusOne vips.IntParameter + intMinusOne.Set(-1) img, err := vips.LoadImageFromFile(p1, &vips.ImportParams{ FailOnError: boolFalse, + NumPages: intMinusOne, }) if err != nil { return err diff --git a/encoder_test.go b/encoder_test.go index 48a701a..51e2b3e 100644 --- a/encoder_test.go +++ b/encoder_test.go @@ -96,6 +96,11 @@ func TestWebPEncoder(t *testing.T) { _ = os.Remove(dest) } +func TestAnimatedGIFWithWebPEncoder(t *testing.T) { + runEncoder(t, "./pics/gif-animated.gif", dest) + _ = os.Remove(dest) +} + func TestAvifEncoder(t *testing.T) { // Only one file: img_over_16383px.jpg might cause memory issues on CI environment assert.Nil(t, avifEncoder("./pics/big.jpg", dest, 80, ExtraParams{Width: 0, Height: 0})) diff --git a/pics/gif-animated.gif b/pics/gif-animated.gif new file mode 100644 index 0000000..4572b98 Binary files /dev/null and b/pics/gif-animated.gif differ