大家好!我是新来的,由于编程基础比较弱,但是现在需要用VC来实现读取显示.img的文件,就是envi的标准格式的图像,在网上找了好多都找不到,请问能帮一下忙如何实现吗?
解决方案 »
- 派生自CDHtmlDialog的CMyDialog一个类的 滚动条自动显示的问题?
- 找工作,专长是C++,北京地区,不计较工资,需要的联系我
- 请教串口自动波特率检测问题
- 自画问题
- 一首歌
- ListBox中的某一行的字符串长度大于ListBox的宽度,无法看到被隐藏的部分,怎样才能使当选中ListBox中的这一行字符串时,该行的字符串能
- c++的编译器用哪个???帮忙啊!!!
- dll和主程序如何共享变量?
- 再问SOCKET问题,SOCKET连接成功后进行发送和接受,可是我想隔一段时间就收发一次,难道每次都建立SOCKET并进行连接吗 ??
- 堆栈回溯的代码怎么写?
- 付报酬求高手帮我写一个查找代理服务器的小程序
- Visual C++ 2008加上Feature Pack释放后到未装vc9上运行提示"应用程序配置不正确"
{
int i,j;
CFileDialog dlg(TRUE, ".*", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"All Files(*.*)|*.*||",NULL);
CString FileName;
if(dlg.DoModal()==IDOK)
{
FileName=dlg.GetFileName();
CFile file(FileName,CFile::typeBinary|CFile::modeRead);//|
length=file.GetLength();
length=(int)ceil(sqrt(length));
Image=new BYTE*[length];
for(i=0;i<length;i++)
Image[i]=new BYTE[length];
for(i=0;i<length;i++)
for(j=0;j<length;j++)
{
file.Read(&Image[i][j],sizeof(BYTE));
}
file.Close();
Draw=FALSE;
}
else{return;}
}
自己加个菜单项,调用这个函数就行,在OnDraw()
利用这个显示
void CReadDatView::OnDraw(CDC* pDC)
{
CReadDatDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int i,j;
//显示解码后图像
if(!Draw)
{
for(i=0;i<length;i++)
for(j=0;j<length;j++)
{
BYTE tmp=Image[j][i];////
pDC->SetPixel(i,j,RGB(tmp,tmp,tmp));
}
if(Image2)
{ for(i=0;i<length;i++)
for(j=0;j<length;j++)
{
BYTE tmp=Image2[j][i];////
pDC->SetPixel(i+513,j,RGB(tmp,tmp,tmp));
}
}
}
}
Draw为布尔变量void CReadDatView::OnOpenDat()
{
// TODO: Add your command handler code here
ReadDatFile();
Invalidate();//使窗口无效
}//菜单项调用