diff options
Diffstat (limited to 'include/images/SkImageEncoder.h')
-rw-r--r-- | include/images/SkImageEncoder.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/images/SkImageEncoder.h b/include/images/SkImageEncoder.h new file mode 100644 index 0000000000..94989c0843 --- /dev/null +++ b/include/images/SkImageEncoder.h @@ -0,0 +1,36 @@ +#ifndef SkImageEncoder_DEFINED +#define SkImageEncoder_DEFINED + +#include "SkTypes.h" + +class SkBitmap; +class SkWStream; + +class SkImageEncoder { +public: + enum Type { + kJPEG_Type, + kPNG_Type + }; + static SkImageEncoder* Create(Type); + + virtual ~SkImageEncoder(); + + /* Quality ranges from 0..100 */ + enum { + kDefaultQuality = 80 + }; + + bool encodeFile(const char file[], const SkBitmap&, int quality); + bool encodeStream(SkWStream*, const SkBitmap&, int quality); + + static bool EncodeFile(const char file[], const SkBitmap&, Type, + int quality); + static bool EncodeStream(SkWStream*, const SkBitmap&, Type, + int quality); + +protected: + virtual bool onEncode(SkWStream*, const SkBitmap&, int quality) = 0; +}; + +#endif |