]> Cypherpunks repositories - gostls13.git/commitdiff
image/draw: add CMYK test.
authorNigel Tao <nigeltao@golang.org>
Mon, 16 Feb 2015 06:41:28 +0000 (17:41 +1100)
committerNigel Tao <nigeltao@golang.org>
Tue, 17 Feb 2015 00:08:47 +0000 (00:08 +0000)
This just adds test cases. Optimizing CMYK draws will be a follow-up
change.

Change-Id: Ic0d6343d420cd021e21f88623ad7182e93017da9
Reviewed-on: https://go-review.googlesource.com/4941
Reviewed-by: Rob Pike <r@golang.org>
src/image/draw/draw_test.go

index 0dd7fbd479aff6cdf58140d6dc925aa8d97ea7b2..8b4ca029ebbd2ba70a3084e9c03ab84986282d22 100644 (file)
@@ -74,6 +74,16 @@ func vgradCr() image.Image {
        return m
 }
 
+func vgradMagenta() image.Image {
+       m := image.NewCMYK(image.Rect(0, 0, 16, 16))
+       for y := 0; y < 16; y++ {
+               for x := 0; x < 16; x++ {
+                       m.Set(x, y, color.CMYK{0, uint8(y * 0x11), 0, 0x3f})
+               }
+       }
+       return m
+}
+
 func hgradRed(alpha int) Image {
        m := image.NewRGBA(image.Rect(0, 0, 16, 16))
        for y := 0; y < 16; y++ {
@@ -147,6 +157,16 @@ var drawTests = []drawTest{
        {"ycbcrAlphaSrc", vgradCr(), fillAlpha(192), Src, color.RGBA{8, 28, 0, 192}},
        {"ycbcrNil", vgradCr(), nil, Over, color.RGBA{11, 38, 0, 255}},
        {"ycbcrNilSrc", vgradCr(), nil, Src, color.RGBA{11, 38, 0, 255}},
+       // Uniform mask (100%, 75%, nil) and variable CMYK source.
+       // At (x, y) == (8, 8):
+       // The destination pixel is {136, 0, 0, 255}.
+       // The source pixel is {0, 136, 0, 63} in CMYK-space, which is {192, 89, 192} in RGB-space.
+       {"cmyk", vgradMagenta(), fillAlpha(255), Over, color.RGBA{192, 89, 192, 255}},
+       {"cmykSrc", vgradMagenta(), fillAlpha(255), Src, color.RGBA{192, 89, 192, 255}},
+       {"cmykAlpha", vgradMagenta(), fillAlpha(192), Over, color.RGBA{178, 67, 145, 255}},
+       {"cmykAlphaSrc", vgradMagenta(), fillAlpha(192), Src, color.RGBA{145, 67, 145, 192}},
+       {"cmykNil", vgradMagenta(), nil, Over, color.RGBA{192, 89, 192, 255}},
+       {"cmykNilSrc", vgradMagenta(), nil, Src, color.RGBA{192, 89, 192, 255}},
        // Variable mask and variable source.
        // At (x, y) == (8, 8):
        // The destination pixel is {136, 0, 0, 255}.