1 #pragma once
2 
3 // Image Options
4 #define LC_IMAGE_TRANSPARENT	0x2000
5 //#define LC_IMAGE_MASK		0x7000
6 
7 enum lcPixelFormat
8 {
9 	LC_PIXEL_FORMAT_INVALID,
10 	LC_PIXEL_FORMAT_A8,
11 	LC_PIXEL_FORMAT_L8A8,
12 	LC_PIXEL_FORMAT_R8G8B8,
13 	LC_PIXEL_FORMAT_R8G8B8A8
14 };
15 
16 class Image
17 {
18 public:
19 	Image();
20 	Image(Image&& Other);
21 	virtual ~Image();
22 
23 	Image(const Image&) = delete;
24 	Image& operator=(const Image&) = delete;
25 	Image& operator=(Image&&) = delete;
26 
27 	int GetBPP() const;
28 	bool HasAlpha() const;
29 
30 	bool FileLoad(lcMemFile& File);
31 	bool FileLoad(const QString& FileName);
32 
33 	void Resize(int Width, int Height);
34 	void ResizePow2();
35 	void Allocate(int Width, int Height, lcPixelFormat Format);
36 	void FreeData();
37 
38 	int mWidth;
39 	int mHeight;
40 	lcPixelFormat mFormat;
41 	unsigned char* mData;
42 };
43 
44