kora-bot/Source/BWEM/EasyBMP_1.06/EasyBMP_BMP.h

87 lines
2.7 KiB
C
Raw Normal View History

2023-04-10 23:31:02 +00:00
/*************************************************
* *
* EasyBMP Cross-Platform Windows Bitmap Library *
* *
* Author: Paul Macklin *
* email: macklin01@users.sourceforge.net *
* support: http://easybmp.sourceforge.net *
* *
* file: EasyBMP_VariousBMPutilities.h *
* date added: 05-02-2005 *
* date modified: 12-01-2006 *
* version: 1.06 *
* *
* License: BSD (revised/modified) *
* Copyright: 2005-6 by the EasyBMP Project *
* *
* description: Defines BMP class *
* *
*************************************************/
#ifndef _EasyBMP_BMP_h_
#define _EasyBMP_BMP_h_
bool SafeFread( char* buffer, int size, int number, FILE* fp );
bool EasyBMPcheckDataSize( void );
class BMP
{private:
int BitDepth;
int Width;
int Height;
RGBApixel** Pixels;
RGBApixel* Colors;
int XPelsPerMeter;
int YPelsPerMeter;
ebmpBYTE* MetaData1;
int SizeOfMetaData1;
ebmpBYTE* MetaData2;
int SizeOfMetaData2;
bool Read32bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Read24bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Read8bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Read4bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Read1bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Write32bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Write24bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Write8bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Write4bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
bool Write1bitRow( ebmpBYTE* Buffer, int BufferSize, int Row );
ebmpBYTE FindClosestColor( RGBApixel& input );
public:
int TellBitDepth( void );
int TellWidth( void );
int TellHeight( void );
int TellNumberOfColors( void );
void SetDPI( int HorizontalDPI, int VerticalDPI );
int TellVerticalDPI( void );
int TellHorizontalDPI( void );
BMP();
BMP( BMP& Input );
~BMP();
RGBApixel* operator()(int i,int j);
RGBApixel GetPixel( int i, int j ) const;
bool SetPixel( int i, int j, RGBApixel NewPixel );
bool CreateStandardColorTable( void );
bool SetSize( int NewWidth, int NewHeight );
bool SetBitDepth( int NewDepth );
bool WriteToFile( const char* FileName );
bool ReadFromFile( const char* FileName );
RGBApixel GetColor( int ColorNumber );
bool SetColor( int ColorNumber, RGBApixel NewColor );
};
#endif