1#ifndef SkImageEncoder_DEFINED 2#define SkImageEncoder_DEFINED 3 4#include "SkTypes.h" 5 6class SkBitmap; 7class SkWStream; 8 9class SkImageEncoder { 10public: 11 enum Type { 12 kJPEG_Type, 13 kPNG_Type, 14 kWEBP_Type 15 }; 16 static SkImageEncoder* Create(Type); 17 18 virtual ~SkImageEncoder(); 19 20 /* Quality ranges from 0..100 */ 21 enum { 22 kDefaultQuality = 80 23 }; 24 25 bool encodeFile(const char file[], const SkBitmap&, int quality); 26 bool encodeStream(SkWStream*, const SkBitmap&, int quality); 27 28 static bool EncodeFile(const char file[], const SkBitmap&, Type, 29 int quality); 30 static bool EncodeStream(SkWStream*, const SkBitmap&, Type, 31 int quality); 32 33protected: 34 virtual bool onEncode(SkWStream*, const SkBitmap&, int quality) = 0; 35}; 36 37#endif 38