www.pudn.com > EnergyMap.rar > drawmap.cpp
#include "stdafx.h"
#include "DrawMap.h"
#include "colortable.h"
#include "trans.h"
#include "disperse.h"
#include "resample.h"
CDrawMap::CDrawMap()
{
trace=256;
sample=4096;
}
CDrawMap::~CDrawMap()
{
}
void CDrawMap::GetBitmap(CBitmap*Bitmap)
{
m_Bitmap=Bitmap;
}
bool CDrawMap::DrawEnergyMap()
{
if(!ReadData()){
return false;
}
trans(data,trace,sample);
(*m_Bitmap).DeleteObject();
(*m_Bitmap).CreateBitmap(trace,sample,1,32,NULL);
unsigned char* pData;
if((pData=new unsigned char[trace*sample*4])==NULL)
return false;
for(int y=0;ySetBitmapBits(trace*sample*4,pData);
delete []pData;
return true;
}
bool CDrawMap::OpenFile()
{
CString strFileExtension="Data Files(*.dat)|*.dat|segy Files(*.segy)|*.segy|sgy Files(*.sgy)|*.sgy|All Files(*.*)|*.*||";
CFileDialog fileOpenDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,
(LPCTSTR)strFileExtension,NULL);
fileOpenDlg.m_ofn.lpstrTitle="Select Original File Name";
int result=fileOpenDlg.DoModal();
if (result==IDOK) {
strcpy(file,fileOpenDlg.GetPathName());
}
if ((fp=fopen(file,"rb"))==NULL) {
return false;
}
return true;
}
bool CDrawMap::ReadData()
{
float*data1;
data1=new float[trace*sample];
if((fread(data1,sizeof(float)*trace*sample,1,fp))==NULL)
return false;
data=disperse(data1,trace,sample);
delete []data1;
return true;
}