aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/ImageTest.cpp
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-04-03 11:42:52 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-03 16:21:31 +0000
commit5b1dba845169c9459fb79070940098ccb59535a8 (patch)
treea1ae76ed5301088cb2a9d5d946725dbdd3872c1c /tests/ImageTest.cpp
parent887cdf112809727c51890ba8b98b3ddce22249f0 (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.cpp12
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);