mirror of
https://github.com/leozide/leocad
synced 2024-12-28 22:23:35 +01:00
52 lines
1 KiB
C++
52 lines
1 KiB
C++
#ifndef _IMAGE_H_
|
|
#define _IMAGE_H_
|
|
|
|
// Image Options
|
|
//#define LC_IMAGE_PROGRESSIVE 0x1000
|
|
#define LC_IMAGE_TRANSPARENT 0x2000
|
|
//#define LC_IMAGE_HIGHCOLOR 0x4000
|
|
#define LC_IMAGE_MASK 0x7000
|
|
|
|
enum LC_IMAGE_FORMAT
|
|
{
|
|
LC_IMAGE_BMP,
|
|
LC_IMAGE_JPG,
|
|
LC_IMAGE_PNG
|
|
};
|
|
|
|
enum lcPixelFormat
|
|
{
|
|
LC_PIXEL_FORMAT_INVALID,
|
|
LC_PIXEL_FORMAT_A8,
|
|
LC_PIXEL_FORMAT_L8A8,
|
|
LC_PIXEL_FORMAT_R8G8B8,
|
|
LC_PIXEL_FORMAT_R8G8B8A8
|
|
};
|
|
|
|
class Image
|
|
{
|
|
public:
|
|
Image();
|
|
virtual ~Image();
|
|
|
|
int GetBPP() const;
|
|
bool HasAlpha() const;
|
|
|
|
bool FileSave(lcMemFile& File, LC_IMAGE_FORMAT Format, bool Transparent) const;
|
|
bool FileSave(const char* FileName, LC_IMAGE_FORMAT Format, bool Transparent) const;
|
|
bool FileLoad(lcMemFile& File);
|
|
bool FileLoad(const char* FileName);
|
|
|
|
void Resize(int Width, int Height);
|
|
void ResizePow2();
|
|
void FromOpenGL(int Width, int Height);
|
|
void Allocate(int Width, int Height, lcPixelFormat Format);
|
|
void FreeData();
|
|
|
|
int mWidth;
|
|
int mHeight;
|
|
lcPixelFormat mFormat;
|
|
unsigned char* mData;
|
|
};
|
|
|
|
#endif // _IMAGE_H_
|