1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#pragma once
#include "Options.h"
#include "Image.h"
namespace graphics {
/**
* BMP options.
*/
class BMPOptions : public FormatOptions {
STORM_CLASS;
public:
// Create, default options.
STORM_CTOR BMPOptions();
// Encoding mode.
// Note: The current implementation does not support palette4. Palette8 is just a static palette.
enum Mode {
// Unknown. Some format that we can not encode.
unknown,
// Black and white, 1bpp
mono1,
// Palette, 4bpp
palette4,
// Palette, 8bpp
palette8,
// Color, 16bpp, 5:5:5:1
color16alpha,
// Color, 16bpp, 5:6:5
color16,
// Color, 24bpp
color24,
// Color, 24bpp + 8bpp alpha
color24alpha,
};
// Encoding mode.
Mode mode;
// Create, custom options.
STORM_CTOR BMPOptions(Mode mode);
// Load an image, set options.
virtual Image *STORM_FN load(IStream *from);
using FormatOptions::load;
// Save an image according to options.
virtual void STORM_FN save(Image *image, OStream *to);
using FormatOptions::save;
// Output.
virtual void STORM_FN toS(StrBuf *to) const;
};
// Create an ImageFormat. For internal use.
ImageFormat *bmpFormat(Engine &e);
}
|