Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-09-04 15:07:10 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-09-04 18:24:50 +0300
commitbb894ceaf8d3655dd14bc63bf4a4557e3a16f530 (patch)
tree1aa9eab6cd4b10f81a0d382a6c009147333d1df7 /resources/images
parent529c7f1090e16c1bcff39948a8a5f4ed054650fb (diff)
Allow slices in the image Filter funcs, not just varargs
[ci skip] See #6255
Diffstat (limited to 'resources/images')
-rw-r--r--resources/images/filters_test.go34
-rw-r--r--resources/images/image.go18
2 files changed, 52 insertions, 0 deletions
diff --git a/resources/images/filters_test.go b/resources/images/filters_test.go
new file mode 100644
index 000000000..658a9a427
--- /dev/null
+++ b/resources/images/filters_test.go
@@ -0,0 +1,34 @@
+// Copyright 2019 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package images
+
+import (
+ "testing"
+
+ "github.com/gohugoio/hugo/resources/internal"
+
+ qt "github.com/frankban/quicktest"
+)
+
+func TestFilterHash(t *testing.T) {
+ c := qt.New(t)
+
+ f := &Filters{}
+
+ c.Assert(internal.HashString(f.Grayscale()), qt.Equals, internal.HashString(f.Grayscale()))
+ c.Assert(internal.HashString(f.Grayscale()), qt.Not(qt.Equals), internal.HashString(f.Invert()))
+ c.Assert(internal.HashString(f.Gamma(32)), qt.Not(qt.Equals), internal.HashString(f.Gamma(33)))
+ c.Assert(internal.HashString(f.Gamma(32)), qt.Equals, internal.HashString(f.Gamma(32)))
+
+}
diff --git a/resources/images/image.go b/resources/images/image.go
index aa7d567aa..e72d96837 100644
--- a/resources/images/image.go
+++ b/resources/images/image.go
@@ -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))
+ }
+}