00001 #ifndef SkImageEncoder_DEFINED
00002 #define SkImageEncoder_DEFINED
00003
00004 #include "SkTypes.h"
00005
00006 class SkBitmap;
00007 class SkWStream;
00008
00009 class SkImageEncoder {
00010 public:
00011 enum Type {
00012 kJPEG_Type,
00013 kPNG_Type
00014 };
00015 static SkImageEncoder* Create(Type);
00016
00017 virtual ~SkImageEncoder();
00018
00019
00020 enum {
00021 kDefaultQuality = 80
00022 };
00023
00024 bool encodeFile(const char file[], const SkBitmap&, int quality);
00025 bool encodeStream(SkWStream*, const SkBitmap&, int quality);
00026
00027 static bool EncodeFile(const char file[], const SkBitmap&, Type,
00028 int quality);
00029 static bool EncodeStream(SkWStream*, const SkBitmap&, Type,
00030 int quality);
00031
00032 protected:
00033 virtual bool onEncode(SkWStream*, const SkBitmap&, int quality) = 0;
00034 };
00035
00036 #endif