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 /tests/CodecTest.cpp | |
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 'tests/CodecTest.cpp')
-rw-r--r-- | tests/CodecTest.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp index 45362db72c..43035213d9 100644 --- a/tests/CodecTest.cpp +++ b/tests/CodecTest.cpp @@ -22,6 +22,7 @@ #include "SkOSPath.h" #include "SkJpegEncoder.h" #include "SkPngChunkReader.h" +#include "SkPngEncoder.h" #include "SkRandom.h" #include "SkStream.h" #include "SkStreamPriv.h" @@ -1525,16 +1526,21 @@ DEF_TEST(Codec_InvalidAnimated, r) { } static void encode_format(SkDynamicMemoryWStream* stream, const SkPixmap& pixmap, - const SkEncodeOptions& opts, SkEncodedImageFormat format) { + SkTransferFunctionBehavior unpremulBehavior, + SkEncodedImageFormat format) { + SkPngEncoder::Options pngOptions; + SkEncodeOptions options; + pngOptions.fUnpremulBehavior = unpremulBehavior; + options.fUnpremulBehavior = unpremulBehavior; switch (format) { case SkEncodedImageFormat::kPNG: - SkEncodeImageAsPNG(stream, pixmap, opts); + SkPngEncoder::Encode(stream, pixmap, pngOptions); break; case SkEncodedImageFormat::kJPEG: SkJpegEncoder::Encode(stream, pixmap, SkJpegEncoder::Options()); break; case SkEncodedImageFormat::kWEBP: - SkEncodeImageAsWEBP(stream, pixmap, opts); + SkEncodeImageAsWEBP(stream, pixmap, options); break; default: SkASSERT(false); @@ -1552,9 +1558,7 @@ static void test_encode_icc(skiatest::Reporter* r, SkEncodedImageFormat format, SkPixmap pixmap; srgbBitmap.peekPixels(&pixmap); SkDynamicMemoryWStream srgbBuf; - SkEncodeOptions opts; - opts.fUnpremulBehavior = unpremulBehavior; - encode_format(&srgbBuf, pixmap, opts, format); + encode_format(&srgbBuf, pixmap, unpremulBehavior, format); sk_sp<SkData> srgbData = srgbBuf.detachAsData(); std::unique_ptr<SkCodec> srgbCodec(SkCodec::NewFromData(srgbData)); REPORTER_ASSERT(r, srgbCodec->getInfo().colorSpace() == SkColorSpace::MakeSRGB().get()); @@ -1564,7 +1568,7 @@ static void test_encode_icc(skiatest::Reporter* r, SkEncodedImageFormat format, sk_sp<SkColorSpace> p3 = SkColorSpace::MakeRGB(SkColorSpace::kSRGB_RenderTargetGamma, SkColorSpace::kDCIP3_D65_Gamut); pixmap.setColorSpace(p3); - encode_format(&p3Buf, pixmap, opts, format); + encode_format(&p3Buf, pixmap, unpremulBehavior, format); sk_sp<SkData> p3Data = p3Buf.detachAsData(); std::unique_ptr<SkCodec> p3Codec(SkCodec::NewFromData(p3Data)); REPORTER_ASSERT(r, p3Codec->getInfo().colorSpace()->gammaCloseToSRGB()); |