diff options
author | Matt Sarett <msarett@google.com> | 2017-05-05 11:13:26 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-05 16:34:13 +0000 |
commit | c367d03fb04fccdc63b1379cf74ddc1cab842039 (patch) | |
tree | 34bf729ad13945d6351874c547edef2064c7415c /gm | |
parent | 243ed375544de7446037fde6ad29944d5eda54bf (diff) |
Add support for row-by-row png encodes
Also adds a SkEncoder base class.
Bug: 713862
Change-Id: Ia3f009cd9f376514f6c19396245fab3a43ae6536
Reviewed-on: https://skia-review.googlesource.com/15152
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'gm')
-rw-r--r-- | gm/encode-platform.cpp | 10 | ||||
-rw-r--r-- | gm/encode-srgb.cpp | 5 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gm/encode-platform.cpp b/gm/encode-platform.cpp index b6e0c1c1c3..fa940b6271 100644 --- a/gm/encode-platform.cpp +++ b/gm/encode-platform.cpp @@ -13,6 +13,7 @@ #include "SkImage.h" #include "SkImageEncoderPriv.h" #include "SkJpegEncoder.h" +#include "SkPngEncoder.h" #include "SkUnPreMultiply.h" namespace skiagm { @@ -69,9 +70,12 @@ static sk_sp<SkData> encode_data(SkEncodedImageFormat type, const SkBitmap& bitm return SkEncodeImageWithWIC(&buf, src, type, 100) ? buf.detachAsData() : nullptr; #else switch (type) { - case SkEncodedImageFormat::kPNG: - return SkEncodeImageAsPNG(&buf, src, SkEncodeOptions()) ? buf.detachAsData() - : nullptr; + case SkEncodedImageFormat::kPNG: { + SkPngEncoder::Options options; + options.fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; + bool success = SkPngEncoder::Encode(&buf, src, options); + return success ? buf.detachAsData() : nullptr; + } case SkEncodedImageFormat::kJPEG: { bool success = SkJpegEncoder::Encode(&buf, src, SkJpegEncoder::Options()); return success ? buf.detachAsData() : nullptr; diff --git a/gm/encode-srgb.cpp b/gm/encode-srgb.cpp index bbaeaa7042..bf9ef821ab 100644 --- a/gm/encode-srgb.cpp +++ b/gm/encode-srgb.cpp @@ -15,6 +15,7 @@ #include "SkImage.h" #include "SkImageEncoderPriv.h" #include "SkJpegEncoder.h" +#include "SkPngEncoder.h" #include "SkPM4f.h" #include "SkSRGB.h" @@ -117,14 +118,16 @@ static sk_sp<SkData> encode_data(const SkBitmap& bitmap, SkEncodedImageFormat fo } SkDynamicMemoryWStream buf; + SkPngEncoder::Options pngOptions; SkEncodeOptions options; if (bitmap.colorSpace()) { + pngOptions.fUnpremulBehavior = SkTransferFunctionBehavior::kRespect; options.fUnpremulBehavior = SkTransferFunctionBehavior::kRespect; } switch (format) { case SkEncodedImageFormat::kPNG: - SkAssertResult(SkEncodeImageAsPNG(&buf, src, options)); + SkAssertResult(SkPngEncoder::Encode(&buf, src, pngOptions)); break; case SkEncodedImageFormat::kWEBP: SkAssertResult(SkEncodeImageAsWEBP(&buf, src, options)); |