| Index: include/core/SkImageEncoder.h
|
| diff --git a/include/core/SkImageEncoder.h b/include/core/SkImageEncoder.h
|
| index fc999dcc189d4177de70c6b0a4810bb1e0165de1..5fa69f799297560b473d922b3872c397ccfab680 100644
|
| --- a/include/core/SkImageEncoder.h
|
| +++ b/include/core/SkImageEncoder.h
|
| @@ -13,6 +13,8 @@
|
|
|
| class SkBitmap;
|
| class SkData;
|
| +class SkPixmap;
|
| +class SkPixelSerializer;
|
| class SkWStream;
|
|
|
| class SkImageEncoder {
|
| @@ -60,8 +62,11 @@ public:
|
| */
|
| bool encodeStream(SkWStream* stream, const SkBitmap& bm, int quality);
|
|
|
| + SkPixelSerializer* refSerializer();
|
| +
|
| static SkData* EncodeData(const SkImageInfo&, const void* pixels, size_t rowBytes,
|
| Type, int quality);
|
| + static SkData* EncodeData(const SkPixmap&, Type, int quality);
|
| static SkData* EncodeData(const SkBitmap&, Type, int quality);
|
|
|
| static bool EncodeFile(const char file[], const SkBitmap&, Type,
|
| @@ -69,6 +74,12 @@ public:
|
| static bool EncodeStream(SkWStream*, const SkBitmap&, Type,
|
| int quality);
|
|
|
| + /**
|
| + * If the existing data can be re-encoded into the specified type (efficiently), this
|
| + * returns that new data (which the caller must unref()). If not, this returns null.
|
| + */
|
| + static SkData* ReencodeData(SkData* encoded, Type);
|
| +
|
| protected:
|
| /**
|
| * Encode bitmap 'bm' in the desired format, writing results to
|
| @@ -78,6 +89,8 @@ protected:
|
| * This must be overridden by each SkImageEncoder implementation.
|
| */
|
| virtual bool onEncode(SkWStream* stream, const SkBitmap& bm, int quality) = 0;
|
| +
|
| + virtual SkData* onReencodeData(SkData*) { return nullptr; }
|
| };
|
|
|
| // This macro declares a global (i.e., non-class owned) creation entry point
|
|
|