mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00: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