diff options
author | Matt Sarett <msarett@google.com> | 2017-04-03 11:42:52 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-03 16:21:31 +0000 |
commit | 5b1dba845169c9459fb79070940098ccb59535a8 (patch) | |
tree | a1ae76ed5301088cb2a9d5d946725dbdd3872c1c /tests/ImageTest.cpp | |
parent | 887cdf112809727c51890ba8b98b3ddce22249f0 (diff) |
Support parametric transfer functions in SkImage_Raster::onMakeColorSpace()
BUG=skia:6456
Change-Id: Ib94bba9db669562a9b2b64fff56ebe40a2bc0096
Reviewed-on: https://skia-review.googlesource.com/11122
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'tests/ImageTest.cpp')
-rw-r--r-- | tests/ImageTest.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index ba49000d9a..3a7a192839 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -1054,6 +1054,9 @@ DEF_TEST(Image_ColorSpace, r) { DEF_TEST(Image_makeColorSpace, r) { sk_sp<SkColorSpace> p3 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kDCIP3_D65_Gamut); + SkColorSpaceTransferFn fn; + fn.fA = 1.f; fn.fB = 0.f; fn.fC = 0.f; fn.fD = 0.f; fn.fE = 0.f; fn.fF = 0.f; fn.fG = 1.8f; + sk_sp<SkColorSpace> adobeGamut = SkColorSpace::MakeRGB(fn, SkColorSpace::kAdobeRGB_Gamut); SkBitmap srgbBitmap; srgbBitmap.allocPixels(SkImageInfo::MakeS32(1, 1, kOpaque_SkAlphaType)); @@ -1069,6 +1072,15 @@ DEF_TEST(Image_makeColorSpace, r) { REPORTER_ASSERT(r, almost_equal(0x40, SkGetPackedG32(*p3Bitmap.getAddr32(0, 0)))); REPORTER_ASSERT(r, almost_equal(0x5E, SkGetPackedB32(*p3Bitmap.getAddr32(0, 0)))); + sk_sp<SkImage> adobeImage = as_IB(srgbImage)->makeColorSpace(adobeGamut); + SkBitmap adobeBitmap; + success = adobeImage->asLegacyBitmap(&adobeBitmap, SkImage::kRO_LegacyBitmapMode); + REPORTER_ASSERT(r, success); + adobeBitmap.lockPixels(); + REPORTER_ASSERT(r, almost_equal(0x21, SkGetPackedR32(*adobeBitmap.getAddr32(0, 0)))); + REPORTER_ASSERT(r, almost_equal(0x31, SkGetPackedG32(*adobeBitmap.getAddr32(0, 0)))); + REPORTER_ASSERT(r, almost_equal(0x4C, SkGetPackedB32(*adobeBitmap.getAddr32(0, 0)))); + srgbImage = GetResourceAsImage("1x1.png"); p3Image = as_IB(srgbImage)->makeColorSpace(p3); success = p3Image->asLegacyBitmap(&p3Bitmap, SkImage::kRO_LegacyBitmapMode); |