aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/CodecTest.cpp
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-05-05 11:13:26 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-05 16:34:13 +0000
commitc367d03fb04fccdc63b1379cf74ddc1cab842039 (patch)
tree34bf729ad13945d6351874c547edef2064c7415c /tests/CodecTest.cpp
parent243ed375544de7446037fde6ad29944d5eda54bf (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.cpp18
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());