// FrameSave.cpp: implementation of the CFrameSave class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "InspectionBuffer.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CFrameSave::CFrameSave(CString &strDir_, int startFrame, int width, int height) : strDir(strDir_), iStartFrame(startFrame) { pImageFileHeader= new stImageFileHeader; pImageFileHeader->ChangeSize(width, height); } CFrameSave::~CFrameSave() { if(pImageFileHeader) delete pImageFileHeader; } void CFrameSave::SaveFrame(BYTE *m_pData, int iScan, int iFrame, int cell, int bottom) { CFile file; CString fileName; fileName.Format(_T("%s\\%02d_%04d_%02d_%03d.bmp"), strDir.GetBuffer(100), iScan, iFrame- iStartFrame, cell, bottom); file.Open(fileName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); file.Write(&pImageFileHeader->fileHeader, pImageFileHeader->fileHeader.bfOffBits); // file.Write(&pImageFileHeader->fileHeader, sizeof(BITMAPFILEHEADER)); // file.Write(&pImageFileHeader->infoHeader, sizeof(BITMAPINFOHEADER)); // file.Write(pImageFileHeader->quad, sizeof(RGBQUAD)*256); file.Write(m_pData, pImageFileHeader->infoHeader.biSizeImage); file.Close(); } void CFrameSave::SaveFrame(BYTE *m_pData, int iFrame) { CFile file; CString fileName; fileName.Format(_T("%s\\%04d.bmp"), strDir.GetBuffer(100), iFrame- iStartFrame); file.Open(fileName, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); file.Write(&pImageFileHeader->fileHeader, pImageFileHeader->fileHeader.bfOffBits); // file.Write(&pImageFileHeader->fileHeader, sizeof(BITMAPFILEHEADER)); // file.Write(&pImageFileHeader->infoHeader, sizeof(BITMAPINFOHEADER)); // file.Write(pImageFileHeader->quad, sizeof(RGBQUAD)*256); file.Write(m_pData, pImageFileHeader->infoHeader.biSizeImage); file.Close(); }