diff options
Diffstat (limited to 'gm')
-rw-r--r-- | gm/encode-alpha-jpeg.cpp | 27 | ||||
-rw-r--r-- | gm/encode-platform.cpp | 8 | ||||
-rw-r--r-- | gm/encode-srgb.cpp | 11 | ||||
-rw-r--r-- | gm/makecolorspace.cpp | 34 |
4 files changed, 27 insertions, 53 deletions
diff --git a/gm/encode-alpha-jpeg.cpp b/gm/encode-alpha-jpeg.cpp index 6d26d7a85c..9751fbbc16 100644 --- a/gm/encode-alpha-jpeg.cpp +++ b/gm/encode-alpha-jpeg.cpp @@ -21,11 +21,10 @@ static inline void read_into_pixmap(SkPixmap* dst, SkImageInfo dstInfo, void* ds } static inline sk_sp<SkImage> encode_pixmap_and_make_image(const SkPixmap& src, - SkJpegEncoder::AlphaOption alphaOption, SkTransferFunctionBehavior blendBehavior) { + SkJpegEncoder::AlphaOption alphaOption) { SkDynamicMemoryWStream dst; SkJpegEncoder::Options options; options.fAlphaOption = alphaOption; - options.fBlendBehavior = blendBehavior; SkJpegEncoder::Encode(&dst, src, options); return SkImage::MakeFromEncoded(dst.detachAsData()); } @@ -53,23 +52,17 @@ protected: canvas->imageInfo().colorSpace() ? SkColorSpace::MakeSRGB() : nullptr); read_into_pixmap(&src, info, fStorage.get(), srcImg); - SkTransferFunctionBehavior behavior = canvas->imageInfo().colorSpace() ? - SkTransferFunctionBehavior::kRespect : SkTransferFunctionBehavior::kIgnore; - // Encode 8888 premul. - sk_sp<SkImage> img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore, - behavior); - sk_sp<SkImage> img1 = encode_pixmap_and_make_image(src, - SkJpegEncoder::AlphaOption::kBlendOnBlack, behavior); + auto img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore); + auto img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack); canvas->drawImage(img0, 0.0f, 0.0f); canvas->drawImage(img1, 0.0f, 100.0f); // Encode 8888 unpremul info = info.makeAlphaType(kUnpremul_SkAlphaType); read_into_pixmap(&src, info, fStorage.get(), srcImg); - img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore, behavior); - img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack, - behavior); + img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore); + img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack); canvas->drawImage(img0, 100.0f, 0.0f); canvas->drawImage(img1, 100.0f, 100.0f); @@ -78,18 +71,16 @@ protected: info = SkImageInfo::Make(srcImg->width(), srcImg->height(), kRGBA_F16_SkColorType, kPremul_SkAlphaType, SkColorSpace::MakeSRGBLinear()); read_into_pixmap(&src, info, fStorage.get(), srcImg); - img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore, behavior); - img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack, - behavior); + img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore); + img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack); canvas->drawImage(img0, 200.0f, 0.0f); canvas->drawImage(img1, 200.0f, 100.0f); // Encode F16 unpremul info = info.makeAlphaType(kUnpremul_SkAlphaType); read_into_pixmap(&src, info, fStorage.get(), srcImg); - img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore, behavior); - img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack, - behavior); + img0 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kIgnore); + img1 = encode_pixmap_and_make_image(src, SkJpegEncoder::AlphaOption::kBlendOnBlack); canvas->drawImage(img0, 300.0f, 0.0f); canvas->drawImage(img1, 300.0f, 100.0f); } diff --git a/gm/encode-platform.cpp b/gm/encode-platform.cpp index a9eaae6128..9f94597fa7 100644 --- a/gm/encode-platform.cpp +++ b/gm/encode-platform.cpp @@ -72,9 +72,7 @@ static sk_sp<SkData> encode_data(SkEncodedImageFormat type, const SkBitmap& bitm #else switch (type) { case SkEncodedImageFormat::kPNG: { - SkPngEncoder::Options options; - options.fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; - bool success = SkPngEncoder::Encode(&buf, src, options); + bool success = SkPngEncoder::Encode(&buf, src, SkPngEncoder::Options()); return success ? buf.detachAsData() : nullptr; } case SkEncodedImageFormat::kJPEG: { @@ -82,9 +80,7 @@ static sk_sp<SkData> encode_data(SkEncodedImageFormat type, const SkBitmap& bitm return success ? buf.detachAsData() : nullptr; } case SkEncodedImageFormat::kWEBP: { - SkWebpEncoder::Options options; - options.fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; - bool success = SkWebpEncoder::Encode(&buf, src, options); + bool success = SkWebpEncoder::Encode(&buf, src, SkWebpEncoder::Options()); return success ? buf.detachAsData() : nullptr; } default: diff --git a/gm/encode-srgb.cpp b/gm/encode-srgb.cpp index 3b9526b3c9..699364291d 100644 --- a/gm/encode-srgb.cpp +++ b/gm/encode-srgb.cpp @@ -70,19 +70,12 @@ static sk_sp<SkData> encode_data(const SkBitmap& bitmap, SkEncodedImageFormat fo } SkDynamicMemoryWStream buf; - SkPngEncoder::Options pngOptions; - SkWebpEncoder::Options webpOptions; - SkTransferFunctionBehavior behavior = bitmap.colorSpace() - ? SkTransferFunctionBehavior::kRespect : SkTransferFunctionBehavior::kIgnore; - pngOptions.fUnpremulBehavior = behavior; - webpOptions.fUnpremulBehavior = behavior; - switch (format) { case SkEncodedImageFormat::kPNG: - SkAssertResult(SkPngEncoder::Encode(&buf, src, pngOptions)); + SkAssertResult(SkPngEncoder::Encode(&buf, src, SkPngEncoder::Options())); break; case SkEncodedImageFormat::kWEBP: - SkAssertResult(SkWebpEncoder::Encode(&buf, src, webpOptions)); + SkAssertResult(SkWebpEncoder::Encode(&buf, src, SkWebpEncoder::Options())); break; case SkEncodedImageFormat::kJPEG: SkAssertResult(SkJpegEncoder::Encode(&buf, src, SkJpegEncoder::Options())); diff --git a/gm/makecolorspace.cpp b/gm/makecolorspace.cpp index cd957c3281..ec04b74180 100644 --- a/gm/makecolorspace.cpp +++ b/gm/makecolorspace.cpp @@ -11,22 +11,19 @@ #include "SkImage.h" #include "SkImagePriv.h" -sk_sp<SkImage> make_raster_image(const char* path, SkTransferFunctionBehavior behavior) { +sk_sp<SkImage> make_raster_image(const char* path) { sk_sp<SkData> resourceData = GetResourceAsData(path); std::unique_ptr<SkCodec> codec = SkCodec::MakeFromData(resourceData); SkBitmap bitmap; bitmap.allocPixels(codec->getInfo()); - SkCodec::Options opts; - opts.fPremulBehavior = behavior; - codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes(), &opts); + codec->getPixels(codec->getInfo(), bitmap.getPixels(), bitmap.rowBytes()); return SkImage::MakeFromBitmap(bitmap); } -sk_sp<SkImage> make_color_space(sk_sp<SkImage> orig, sk_sp<SkColorSpace> colorSpace, - SkTransferFunctionBehavior behavior) { - sk_sp<SkImage> xform = orig->makeColorSpace(colorSpace, behavior); +sk_sp<SkImage> make_color_space(sk_sp<SkImage> orig, sk_sp<SkColorSpace> colorSpace) { + sk_sp<SkImage> xform = orig->makeColorSpace(colorSpace); // Assign an sRGB color space on the xformed image, so we can see the effects of the xform // when we draw. @@ -51,9 +48,6 @@ protected: } void onDraw(SkCanvas* canvas) override { - SkTransferFunctionBehavior behavior = canvas->imageInfo().colorSpace() ? - SkTransferFunctionBehavior::kRespect : SkTransferFunctionBehavior::kIgnore; - sk_sp<SkColorSpace> wideGamut = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kAdobeRGB_Gamut); sk_sp<SkColorSpace> wideGamutLinear = wideGamut->makeLinearGamma(); @@ -62,22 +56,22 @@ protected: sk_sp<SkImage> opaqueImage = GetResourceAsImage("images/mandrill_128.png"); sk_sp<SkImage> premulImage = GetResourceAsImage("images/color_wheel.png"); canvas->drawImage(opaqueImage, 0.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamut), 128.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear), 256.0f, 0.0f); canvas->drawImage(premulImage, 0.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamut, behavior), 128.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamutLinear, behavior), 256.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamut), 128.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamutLinear), 256.0f, 128.0f); canvas->translate(0.0f, 256.0f); // Raster images - opaqueImage = make_raster_image("images/mandrill_128.png", behavior); - premulImage = make_raster_image("images/color_wheel.png", behavior); + opaqueImage = make_raster_image("images/mandrill_128.png"); + premulImage = make_raster_image("images/color_wheel.png"); canvas->drawImage(opaqueImage, 0.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamut, behavior), 128.0f, 0.0f); - canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear, behavior), 256.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamut), 128.0f, 0.0f); + canvas->drawImage(make_color_space(opaqueImage, wideGamutLinear), 256.0f, 0.0f); canvas->drawImage(premulImage, 0.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamut, behavior), 128.0f, 128.0f); - canvas->drawImage(make_color_space(premulImage, wideGamutLinear, behavior), 256.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamut), 128.0f, 128.0f); + canvas->drawImage(make_color_space(premulImage, wideGamutLinear), 256.0f, 128.0f); } private: |