From c367d03fb04fccdc63b1379cf74ddc1cab842039 Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Fri, 5 May 2017 11:13:26 -0400 Subject: 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 Commit-Queue: Matt Sarett --- tests/CodecTest.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'tests/CodecTest.cpp') 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 srgbData = srgbBuf.detachAsData(); std::unique_ptr 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 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 p3Data = p3Buf.detachAsData(); std::unique_ptr p3Codec(SkCodec::NewFromData(p3Data)); REPORTER_ASSERT(r, p3Codec->getInfo().colorSpace()->gammaCloseToSRGB()); -- cgit v1.2.3