Allow slices in the image Filter funcs, not just varargs

[ci skip]

See #6255
This commit is contained in:
Bjørn Erik Pedersen
2019-09-04 14:07:10 +02:00
parent 529c7f1090
commit bb894ceaf8
8 changed files with 90 additions and 21 deletions

View File

@@ -14,6 +14,7 @@
package images
import (
"fmt"
"image"
"image/color"
"image/gif"
@@ -259,3 +260,20 @@ func imageConfigFromImage(img image.Image) image.Config {
b := img.Bounds()
return image.Config{Width: b.Max.X, Height: b.Max.Y}
}
func ToFilters(in interface{}) []gift.Filter {
switch v := in.(type) {
case []gift.Filter:
return v
case []filter:
vv := make([]gift.Filter, len(v))
for i, f := range v {
vv[i] = f
}
return vv
case gift.Filter:
return []gift.Filter{v}
default:
panic(fmt.Sprintf("%T is not an image filter", in))
}
}