Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_IMAGESAVER_BMP_H__
00009 #define __SP_IMAGESAVER_BMP_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013 #include "Base/spImageManagement.hpp"
00014 #include "FileFormats/Image/spImageLoaderBMP.hpp"
00015
00016
00017 namespace sp
00018 {
00019 namespace video
00020 {
00021
00022
00023 class SP_EXPORT ImageSaverBMP : public ImageSaver
00024 {
00025
00026 public:
00027
00028 ImageSaverBMP(io::File* File);
00029 ~ImageSaverBMP();
00030
00031 bool saveImageData(SImageDataWrite* ImageData);
00032
00033 private:
00034
00035
00036
00037 #if defined(_MSC_VER)
00038 # pragma pack(push, packing)
00039 # pragma pack(1)
00040 # define SP_PACK_STRUCT
00041 #elif defined(__GNUC__)
00042 # define SP_PACK_STRUCT __attribute__((packed))
00043 #else
00044 # define SP_PACK_STRUCT
00045 #endif
00046
00047 struct SHeaderBMP
00048 {
00049 u16 ID;
00050 u32 FileSize, Reserved;
00051 u32 BitmapDataOffset, BitmapHeaderSize;
00052 u32 Width, Height;
00053 u16 Planes, bpp;
00054 u32 Compression, BitmapDataSize;
00055 u32 PixelPerMeterX, PixelPerMeterY;
00056 u32 Colors, ImportantColors;
00057 }
00058 SP_PACK_STRUCT;
00059
00060 #ifdef _MSC_VER
00061 # pragma pack(pop, packing)
00062 #endif
00063
00064 #undef SP_PACK_STRUCT
00065
00066 };
00067
00068
00069 }
00070
00071 }
00072
00073
00074 #endif
00075
00076
00077
00078