Initial
This commit is contained in:
38
avifile/AVIBMP.CPP
Normal file
38
avifile/AVIBMP.CPP
Normal file
@@ -0,0 +1,38 @@
|
||||
#include <avifile/avibmp.hpp>
|
||||
|
||||
bool AVIBitmap::read(File &inFile)
|
||||
{
|
||||
DWORD sizeHeader;
|
||||
|
||||
inFile.read(sizeHeader);
|
||||
// inFile+=4;
|
||||
|
||||
inFile.read((char*)((BITMAPINFO*)*this),sizeof(BITMAPINFO)-sizeof(RGBQUAD));
|
||||
if(BitmapInfo::TrueColor==bitCount())return false;
|
||||
if(colorUsed())
|
||||
{
|
||||
rgbColors(colorUsed());
|
||||
inFile.read((char*)((RGBQUAD*)*this),sizeof(RGBQUAD));
|
||||
inFile.read((char*)(((RGBQUAD*)*this)+1),(colorUsed()-1)*sizeof(RGBQUAD));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool AVIBitmap::write(File &outFile)
|
||||
{
|
||||
DWORD sizeHeader;
|
||||
|
||||
sizeHeader=sizeof(BITMAPINFOHEADER);
|
||||
outFile.write(sizeHeader);
|
||||
// outFile+=4;
|
||||
|
||||
outFile.write((char*)((BITMAPINFO*)*this),sizeof(BITMAPINFO)-sizeof(RGBQUAD));
|
||||
if(BitmapInfo::TrueColor==bitCount())return false;
|
||||
if(colorUsed())
|
||||
{
|
||||
rgbColors(colorUsed());
|
||||
outFile.write((char*)((RGBQUAD*)*this),sizeof(RGBQUAD));
|
||||
outFile.write((char*)(((RGBQUAD*)*this)+1),(colorUsed()-1)*sizeof(RGBQUAD));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user