@@ -114,6 +114,17 @@ func avifEncoder(p1, p2 string, quality int, extraParams ExtraParams) error {
114
114
return err
115
115
}
116
116
117
+ // Ignore Unknown, WebP, AVIF
118
+ ignoreList := []vips.ImageType {vips .ImageTypeUnknown , vips .ImageTypeWEBP , vips .ImageTypeAVIF }
119
+
120
+ imageFormat := img .Format ()
121
+ for _ , ignore := range ignoreList {
122
+ if imageFormat == ignore {
123
+ // Return err to render original image
124
+ return errors .New ("encoder: ignore image type" )
125
+ }
126
+ }
127
+
117
128
if config .EnableExtraParams {
118
129
err = resizeImage (img , extraParams )
119
130
if err != nil {
@@ -175,6 +186,17 @@ func webpEncoder(p1, p2 string, quality int, extraParams ExtraParams) error {
175
186
return err
176
187
}
177
188
189
+ // Ignore Unknown, WebP, AVIF
190
+ ignoreList := []vips.ImageType {vips .ImageTypeUnknown , vips .ImageTypeWEBP , vips .ImageTypeAVIF }
191
+
192
+ imageFormat := img .Format ()
193
+ for _ , ignore := range ignoreList {
194
+ if imageFormat == ignore {
195
+ // Return err to render original image
196
+ return errors .New ("encoder: ignore image type" )
197
+ }
198
+ }
199
+
178
200
if config .EnableExtraParams {
179
201
err = resizeImage (img , extraParams )
180
202
if err != nil {
@@ -183,7 +205,8 @@ func webpEncoder(p1, p2 string, quality int, extraParams ExtraParams) error {
183
205
}
184
206
185
207
// The maximum pixel dimensions of a WebP image is 16383 x 16383.
186
- if img .Metadata ().Width > webpMax || img .Metadata ().Height > webpMax {
208
+ // But GIF is exception, it can be larger than 16383
209
+ if (img .Metadata ().Width > webpMax || img .Metadata ().Height > webpMax ) && imageFormat != vips .ImageTypeGIF {
187
210
return errors .New ("WebP: image too large" )
188
211
}
189
212
0 commit comments