summaryrefslogtreecommitdiffstats
path: root/resources/image.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-06-15 18:22:05 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-06-17 23:52:27 +0200
commit5af045ebab109d3e5501b8b6d9fd448840c96c9a (patch)
tree27326eff5c13eae8bbeb4da288e2fa2dac2b444c /resources/image.go
parent8eafe0845d66efd3cf442a8ed89a6da5c1d3117b (diff)
resources/image: Fix fill with smartcrop sometimes returning 0 bytes images
Fixes #7955
Diffstat (limited to 'resources/image.go')
-rw-r--r--resources/image.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/resources/image.go b/resources/image.go
index edf05639f..282f008ed 100644
--- a/resources/image.go
+++ b/resources/image.go
@@ -201,9 +201,26 @@ func (i *imageResource) Fill(spec string) (resource.Image, error) {
return nil, err
}
- return i.doWithImageConfig(conf, func(src image.Image) (image.Image, error) {
+ img, err := i.doWithImageConfig(conf, func(src image.Image) (image.Image, error) {
return i.Proc.ApplyFiltersFromConfig(src, conf)
})
+
+ if err != nil {
+ return nil, err
+ }
+
+ if conf.Anchor == 0 && img.Width() == 0 || img.Height() == 0 {
+ // See https://github.com/gohugoio/hugo/issues/7955
+ // Smartcrop fails silently in some rare cases.
+ // Fall back to a center fill.
+ conf.Anchor = gift.CenterAnchor
+ conf.AnchorStr = "center"
+ return i.doWithImageConfig(conf, func(src image.Image) (image.Image, error) {
+ return i.Proc.ApplyFiltersFromConfig(src, conf)
+ })
+ }
+
+ return img, err
}
func (i *imageResource) Filter(filters ...interface{}) (resource.Image, error) {