aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/images
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-05-08 17:31:00 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-09 17:46:30 +0000
commit94fd06f074016e3ca6a82b88dfdc0ec61d24e67e (patch)
treef46f54e2d8066a749c29e277da2e38c3e6fc4cca /src/images
parent6dfcecad33c949e775a3fd0a58637721ab5e295e (diff)
Move SkPngEncoder into public API
Bug: 713862 Change-Id: I45068ed39affe41ffe0f29bf42c5ea1d9b0247ba Reviewed-on: https://skia-review.googlesource.com/15897 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/images')
-rw-r--r--src/images/SkEncoder.h41
-rw-r--r--src/images/SkPngEncoder.h98
2 files changed, 0 insertions, 139 deletions
diff --git a/src/images/SkEncoder.h b/src/images/SkEncoder.h
deleted file mode 100644
index e2686adb27..0000000000
--- a/src/images/SkEncoder.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SkEncoder_DEFINED
-#define SkEncoder_DEFINED
-
-#include "SkPixmap.h"
-#include "SkTemplates.h"
-
-class SkEncoder : SkNoncopyable {
-public:
-
- /**
- * Encode |numRows| rows of input. If the caller requests more rows than are remaining
- * in the src, this will encode all of the remaining rows. |numRows| must be greater
- * than zero.
- */
- bool encodeRows(int numRows);
-
- virtual ~SkEncoder() {}
-
-protected:
-
- virtual bool onEncodeRows(int numRows) = 0;
-
- SkEncoder(const SkPixmap& src, size_t storageBytes)
- : fSrc(src)
- , fCurrRow(0)
- , fStorage(storageBytes)
- {}
-
- const SkPixmap& fSrc;
- int fCurrRow;
- SkAutoTMalloc<uint8_t> fStorage;
-};
-
-#endif
diff --git a/src/images/SkPngEncoder.h b/src/images/SkPngEncoder.h
deleted file mode 100644
index 0664c06149..0000000000
--- a/src/images/SkPngEncoder.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SkPngEncoder_DEFINED
-#define SkPngEncoder_DEFINED
-
-#include "SkEncoder.h"
-
-class SkPngEncoderMgr;
-class SkWStream;
-
-class SkPngEncoder : public SkEncoder {
-public:
-
- enum class FilterFlag : int {
- kZero = 0x00,
- kNone = 0x08,
- kSub = 0x10,
- kUp = 0x20,
- kAvg = 0x40,
- kPaeth = 0x80,
- kAll = kNone | kSub | kUp | kAvg | kPaeth,
- };
-
- struct Options {
- /**
- * Selects which filtering strategies to use.
- *
- * If a single filter is chosen, libpng will use that filter for every row.
- *
- * If multiple filters are chosen, libpng will use a heuristic to guess which filter
- * will encode smallest, then apply that filter. This happens on a per row basis,
- * different rows can use different filters.
- *
- * Using a single filter (or less filters) is typically faster. Trying all of the
- * filters may help minimize the output file size.
- *
- * Our default value matches libpng's default.
- */
- FilterFlag fFilterFlags = FilterFlag::kAll;
-
- /**
- * Must be in [0, 9] where 9 corresponds to maximal compression. This value is passed
- * directly to zlib. 0 is a special case to skip zlib entirely, creating dramatically
- * larger pngs.
- *
- * Our default value matches libpng's default.
- */
- int fZLibLevel = 6;
-
- /**
- * If the input is premultiplied, this controls the unpremultiplication behavior.
- * The encoder can convert to linear before unpremultiplying or ignore the transfer
- * function and unpremultiply the input as is.
- */
- SkTransferFunctionBehavior fUnpremulBehavior = SkTransferFunctionBehavior::kRespect;
- };
-
- /**
- * Encode the |src| pixels to the |dst| stream.
- * |options| may be used to control the encoding behavior.
- *
- * Returns true on success. Returns false on an invalid or unsupported |src|.
- */
- static bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
-
- /**
- * Create a png encoder that will encode the |src| pixels to the |dst| stream.
- * |options| may be used to control the encoding behavior.
- *
- * |dst| is unowned but must remain valid for the lifetime of the object.
- *
- * This returns nullptr on an invalid or unsupported |src|.
- */
- static std::unique_ptr<SkPngEncoder> Make(SkWStream* dst, const SkPixmap& src,
- const Options& options);
-
- ~SkPngEncoder() override;
-
-protected:
- bool onEncodeRows(int numRows) override;
-
- SkPngEncoder(std::unique_ptr<SkPngEncoderMgr>, const SkPixmap& src);
-
- std::unique_ptr<SkPngEncoderMgr> fEncoderMgr;
- typedef SkEncoder INHERITED;
-};
-
-static inline SkPngEncoder::FilterFlag operator|(SkPngEncoder::FilterFlag x,
- SkPngEncoder::FilterFlag y) {
- return (SkPngEncoder::FilterFlag)((int)x | (int)y);
-}
-
-#endif