aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/images/SkImageEncoderPriv.h
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 /src/images/SkImageEncoderPriv.h
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 'src/images/SkImageEncoderPriv.h')
-rw-r--r--src/images/SkImageEncoderPriv.h27
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);