X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=antikythera;a=blobdiff_plain;f=src%2Fimage.h;fp=src%2Fimage.h;h=b812ae1e3d490e317b4bce5de9712346abca03f9;hp=0000000000000000000000000000000000000000;hb=ccc1a688b59e25bb934a0d3e2bbf477960068d4f;hpb=080d7a779d43f549fc16c44e709cbf5989180fdf diff --git a/src/image.h b/src/image.h new file mode 100644 index 0000000..b812ae1 --- /dev/null +++ b/src/image.h @@ -0,0 +1,43 @@ +#ifndef IMAGE_H_ +#define IMAGE_H_ + +class Image { +public: + enum Format { + FMT_GREY, + FMT_RGB, + FMT_RGBA, + FMT_GREY_FLOAT, + FMT_RGB_FLOAT, + FMT_RGBA_FLOAT + }; + +private: + Format fmt; + int width, height; + void *pixels; + +public: + Image(); + ~Image(); + + int get_width() const; + int get_height() const; + + Format get_format() const; + + bool create(int x, int y, Format fmt = FMT_RGBA); + bool set_pixels(int xsz, int ysz, void *pixels, Format fmt = FMT_RGBA); + bool set_pixels(int xsz, int ysz, void *pixels, int scan_width, Format fmt = FMT_RGBA); + bool set_pixels(int xsz, int ysz, void *pixels, int x, int y, int scan_width = -1, Format fmt = FMT_RGBA); + void *get_pixels() const; + + void flip_horizontal(); + void flip_vertical(); + void rotate_180(); + + bool load(const char *fname); + bool save(const char *fname) const; +}; + +#endif // IMAGE_H_