ultimatepp/uppsrc/plugin/png/png.h
cxl 7710948f88 uppsrc: .icpp files replaced by INITIALIZE/INITIALIZER
git-svn-id: svn://ultimatepp.org/upp/trunk@10424 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-11-13 09:24:24 +00:00

52 lines
1 KiB
C++

#ifndef __nDraw_plugin_png__
#define __nDraw_plugin_png__
#include <Draw/Draw.h>
namespace Upp {
INITIALIZE(PNGRaster);
class PNGRaster : public StreamRaster {
class Data;
One<Data> data;
public:
PNGRaster();
~PNGRaster();
virtual bool Create();
virtual Size GetSize();
virtual Info GetInfo();
virtual Line GetLine(int line);
virtual const RGBA *GetPalette();
virtual const RasterFormat *GetFormat();
private:
bool Init();
};
class PNGEncoder : public StreamRasterEncoder {
class Data;
One<Data> data;
public:
PNGEncoder(int bpp = 32, ImageKind kind = IMAGE_UNKNOWN, bool interlace = false);
~PNGEncoder();
virtual int GetPaletteCount();
virtual void Start(Size sz);
virtual void WriteLineRaw(const byte *data);
PNGEncoder& Bpp(int b) { bpp = b; return *this; }
PNGEncoder& Interlace(int b = true) { interlace = b; return *this; }
private:
int bpp;
ImageKind kind;
bool interlace;
};
}
#endif