#ifndef SkJpegEncoder_DEFINED
#define SkJpegEncoder_DEFINED
#include "SkEncoder.h"
class SkJpegEncoderMgr;
class SkWStream;
class SK_API SkJpegEncoder : public SkEncoder {
public:
enum class AlphaOption {
kIgnore,
kBlendOnBlack,
};
enum class Downsample {
k420,
k422,
k444,
};
struct Options {
int fQuality = 100;
Downsample fDownsample = Downsample::k420;
AlphaOption fAlphaOption = AlphaOption::kIgnore;
};
static bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
static std::unique_ptr<SkEncoder> Make(SkWStream* dst, const SkPixmap& src,
const Options& options);
~SkJpegEncoder() override;
protected:
bool onEncodeRows(int numRows) override;
private:
SkJpegEncoder(std::unique_ptr<SkJpegEncoderMgr>, const SkPixmap& src);
std::unique_ptr<SkJpegEncoderMgr> fEncoderMgr;
typedef SkEncoder INHERITED;
};
#endif