Index: src/images/SkImageEncoder.cpp |
diff --git a/src/images/SkImageEncoder.cpp b/src/images/SkImageEncoder.cpp |
index 31fdcf96042eaf6c701e000e14307be0f5c92391..6886009257f18f8501f41f30f7c9125286ea63a9 100644 |
--- a/src/images/SkImageEncoder.cpp |
+++ b/src/images/SkImageEncoder.cpp |
@@ -7,6 +7,7 @@ |
#include "SkImageEncoder.h" |
#include "SkBitmap.h" |
+#include "SkImage.h" |
#include "SkStream.h" |
#include "SkTemplates.h" |
@@ -40,6 +41,8 @@ bool SkImageEncoder::EncodeFile(const char file[], const SkBitmap& bm, Type t, |
return enc.get() && enc.get()->encodeFile(file, bm, quality); |
} |
+ |
+ |
bool SkImageEncoder::EncodeStream(SkWStream* stream, const SkBitmap& bm, Type t, |
int quality) { |
SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t)); |
@@ -50,3 +53,12 @@ SkData* SkImageEncoder::EncodeData(const SkBitmap& bm, Type t, int quality) { |
SkAutoTDelete<SkImageEncoder> enc(SkImageEncoder::Create(t)); |
return enc.get() ? enc.get()->encodeData(bm, quality) : NULL; |
} |
+ |
+SkData* SkImageEncoder::EncodeData(const SkImage& image, Type type, int quality) { |
+ SkBitmap bm; |
+ if (image.getBitmapForEncoding(&bm)) { |
+ return SkImageEncoder::EncodeData(bm, type, quality); |
+ } |
+ return NULL; |
+} |
+ |