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 /src/images/SkImageEncoderPriv.h | |
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 'src/images/SkImageEncoderPriv.h')
-rw-r--r-- | src/images/SkImageEncoderPriv.h | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/images/SkImageEncoderPriv.h b/src/images/SkImageEncoderPriv.h index 5e57cd128a..4d59d044c6 100644 --- a/src/images/SkImageEncoderPriv.h +++ b/src/images/SkImageEncoderPriv.h @@ -9,17 +9,32 @@ #define SkImageEncoderPriv_DEFINED #include "SkImageEncoder.h" +#include "SkImageInfoPriv.h" + +static inline bool SkPixmapIsValid(const SkPixmap& src, + SkTransferFunctionBehavior unpremulBehavior) +{ + if (SkTransferFunctionBehavior::kRespect == unpremulBehavior) { + if (!SkImageInfoIsValidRenderingCS(src.info())) { + return false; + } + } else { + if (!SkImageInfoIsValidAllowNumericalCS(src.info())) { + return false; + } + } + + if (!src.addr() || src.rowBytes() < src.info().minRowBytes()) { + return false; + } + + return true; +} struct SkEncodeOptions { SkTransferFunctionBehavior fUnpremulBehavior = SkTransferFunctionBehavior::kIgnore; }; -#ifdef SK_HAS_PNG_LIBRARY - bool SkEncodeImageAsPNG(SkWStream*, const SkPixmap&, const SkEncodeOptions&); -#else - #define SkEncodeImageAsPNG(...) false -#endif - #ifdef SK_HAS_WEBP_LIBRARY bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, const SkEncodeOptions&); bool SkEncodeImageAsWEBP(SkWStream*, const SkPixmap&, int quality); |