aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/images/SkImageEncoder.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-09-28 08:58:53 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-09-28 08:58:53 -0700
commit13f48dc85aa68a60da66aaf39c93d527d11d1278 (patch)
tree38fdaad81ebc61ca125f7e1be4c97d39bdeb5fab /src/images/SkImageEncoder.cpp
parent209c1624addaa7f7e63b79d286bd350342740a00 (diff)
change pixel-serializer to support reencoding existing data
Trying to evolve this interface so it can - support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT - allow for encoding images as well as bitmaps (e.g. for picture serialization) - perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format) BUG=skia: Review URL: https://codereview.chromium.org/1373683003
Diffstat (limited to 'src/images/SkImageEncoder.cpp')
-rw-r--r--src/images/SkImageEncoder.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/images/SkImageEncoder.cpp b/src/images/SkImageEncoder.cpp
index cc1b73baa5..4ad12c84cd 100644
--- a/src/images/SkImageEncoder.cpp
+++ b/src/images/SkImageEncoder.cpp
@@ -60,3 +60,13 @@ SkData* SkImageEncoder::EncodeData(const SkImageInfo& info, const void* pixels,
SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t));
return enc.get() ? enc.get()->encodeData(bm, quality) : nullptr;
}
+
+SkData* SkImageEncoder::EncodeData(const SkPixmap& pmap, Type t, int quality) {
+ return EncodeData(pmap.info(), pmap.addr(), pmap.rowBytes(), t, quality);
+}
+
+SkData* SkImageEncoder::ReencodeData(SkData* encoded, Type t) {
+ SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t));
+ return enc.get() ? enc.get()->onReencodeData(encoded) : nullptr;
+}
+