summaryrefslogtreecommitdiffhomepage
path: root/resource
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2018-02-26 18:55:00 +0100
committerBjørn Erik Pedersen <[email protected]>2018-02-26 19:44:36 +0100
commit13ea1e7c352852966f88ef119d9434bbb1ee62fa (patch)
tree3ce6910d14f3074dd2d2900cde4863a4f52ddc54 /resource
parent9f740b37cfb3278e34a5d085380ccd4d619dabff (diff)
downloadhugo-13ea1e7c352852966f88ef119d9434bbb1ee62fa.tar.gz
hugo-13ea1e7c352852966f88ef119d9434bbb1ee62fa.zip
resource: Use Floyd-Steinberg dithering for PNGs
Fixes #4453
Diffstat (limited to 'resource')
-rw-r--r--resource/image.go4
-rw-r--r--resource/image_test.go2
2 files changed, 3 insertions, 3 deletions
diff --git a/resource/image.go b/resource/image.go
index 2529413cc..7dae99333 100644
--- a/resource/image.go
+++ b/resource/image.go
@@ -80,7 +80,7 @@ var (
// Add or increment if changes to an image format's processing requires
// re-generation.
imageFormatsVersions = map[imaging.Format]int{
- imaging.PNG: 1, // 1: Add proper palette handling
+ imaging.PNG: 2, // Floyd Steinberg dithering
}
// Increment to mark all processed images as stale. Only use when absolutely needed.
@@ -266,7 +266,7 @@ func (i *Image) doWithImageConfig(action, spec string, f func(src image.Image, c
// Apply the colour palette from the source
if paletted, ok := src.(*image.Paletted); ok {
tmp := image.NewPaletted(converted.Bounds(), paletted.Palette)
- draw.Src.Draw(tmp, tmp.Bounds(), converted, converted.Bounds().Min)
+ draw.FloydSteinberg.Draw(tmp, tmp.Bounds(), converted, converted.Bounds().Min)
converted = tmp
}
}
diff --git a/resource/image_test.go b/resource/image_test.go
index 03cd1726f..7906f4fbc 100644
--- a/resource/image_test.go
+++ b/resource/image_test.go
@@ -273,7 +273,7 @@ func TestImageResize8BitPNG(t *testing.T) {
resized, err := image.Resize("800x")
assert.NoError(err)
assert.Equal(imaging.PNG, resized.format)
- assert.Equal("/a/gohugoio_hu0e1b9e4a4be4d6f86c7b37b9ccce3fbc_73886_800x0_resize_linear_1.png", resized.RelPermalink())
+ assert.Equal("/a/gohugoio_hu0e1b9e4a4be4d6f86c7b37b9ccce3fbc_73886_800x0_resize_linear_2.png", resized.RelPermalink())
assert.Equal(800, resized.Width())
}