mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-13 20:24:00 +02:00
Fix transparency problem when converting 32-bit images to WebP
Fixes #8729
This commit is contained in:
@@ -28,6 +28,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/gohugoio/hugo/resources/images/webp"
|
||||
|
||||
"github.com/gohugoio/hugo/common/paths"
|
||||
|
||||
"github.com/spf13/afero"
|
||||
@@ -550,6 +552,47 @@ func goldenEqual(img1, img2 *image.NRGBA) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// Issue #8729
|
||||
func TestImageOperationsGoldenWebp(t *testing.T) {
|
||||
if !webp.Supports() {
|
||||
t.Skip("skip webp test")
|
||||
}
|
||||
c := qt.New(t)
|
||||
c.Parallel()
|
||||
|
||||
devMode := false
|
||||
|
||||
testImages := []string{"fuzzy-cirlcle.png"}
|
||||
|
||||
spec, workDir := newTestResourceOsFs(c)
|
||||
defer func() {
|
||||
if !devMode {
|
||||
os.Remove(workDir)
|
||||
}
|
||||
}()
|
||||
|
||||
if devMode {
|
||||
fmt.Println(workDir)
|
||||
}
|
||||
|
||||
for _, imageName := range testImages {
|
||||
image := fetchImageForSpec(spec, c, imageName)
|
||||
imageWebp, err := image.Resize("200x webp")
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(imageWebp.Width(), qt.Equals, 200)
|
||||
}
|
||||
|
||||
if devMode {
|
||||
return
|
||||
}
|
||||
|
||||
dir1 := filepath.Join(workDir, "resources/_gen/images")
|
||||
dir2 := filepath.FromSlash("testdata/golden_webp")
|
||||
|
||||
assetGoldenDirs(c, dir1, dir2)
|
||||
|
||||
}
|
||||
|
||||
func TestImageOperationsGolden(t *testing.T) {
|
||||
c := qt.New(t)
|
||||
c.Parallel()
|
||||
@@ -658,6 +701,12 @@ func TestImageOperationsGolden(t *testing.T) {
|
||||
dir1 := filepath.Join(workDir, "resources/_gen/images")
|
||||
dir2 := filepath.FromSlash("testdata/golden")
|
||||
|
||||
assetGoldenDirs(c, dir1, dir2)
|
||||
|
||||
}
|
||||
|
||||
func assetGoldenDirs(c *qt.C, dir1, dir2 string) {
|
||||
|
||||
// The two dirs above should now be the same.
|
||||
dirinfos1, err := ioutil.ReadDir(dir1)
|
||||
c.Assert(err, qt.IsNil)
|
||||
@@ -692,7 +741,7 @@ func TestImageOperationsGolden(t *testing.T) {
|
||||
"gohugoio8_hu7f72c00afdf7634587afaa5eff2a25b2_73538_300x200_fill_gaussian_smart1_2.png":
|
||||
c.Log("expectedly differs from golden due to dithering:", fi1.Name())
|
||||
default:
|
||||
t.Errorf("resulting image differs from golden: %s", fi1.Name())
|
||||
c.Errorf("resulting image differs from golden: %s", fi1.Name())
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user