我用cdib的save函数保存图像,程序没有错误,但运行后不能保存,谁能帮帮我呀???多谢啦!!
解决方案 »
- CollBack是什么
- 关于COleDispatchDriver类
- 我想hook进一个软件,让该软件的某个窗口类的窗口在创建后就是隐藏状态。而且总也显示不了,除非我让。求大概思路。
- 不使用对话框选择,如何 自动获得 指定文件夹路径 里面 所有文件的文件名
- 不知道各们有没有碰到过ctoolbarctrl->createEx()方法的问题,还有groupbox在xp theme下的显示问题。
- 在FormView中創建控件﹐怎麼讓FormView中出現的滾動條充份滾動﹖
- 如何在CEditView实现编辑的重复与撤销功能
- 高分求五子棋源码以及算法文档!
- 使用cvCvtColor()函数出现file is not 24 bit,该怎么解决?
- 实现无阻碍win7 阻止关机,各位大大有没有方法
- 程序如何适应不同的DPI(大/小字体)设置,不同分辨率的环境?
- RTX插件打包
CFileDialog fileDialog(FALSE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");if (fileDialog.DoModal() == IDOK)
{
UpdateData(true); m_dib.Save(fileDialog.GetPathName() );
UpdateData(false);
}来实现在基于对话框下保存图像,运行没有错误,但是不能将图像保存到你指定的路径下。
哪位高手能帮我看看看那???万分感谢!!
{// If we have no data, we can 't save.
if( m_pDib == NULL )
return( FALSE ); CFile cf; // Attempt to create the file.
if( !cf.Open( pszFilename,
CFile::modeCreate | CFile::modeWrite ) )
return( FALSE ); // Write the data.
try{ // First, create a BITMAPFILEHEADER
// with the correct data.
BITMAPFILEHEADER BFH;
memset( &BFH, 0, sizeof( BITMAPFILEHEADER ) );
BFH.bfType = 'MB ';
BFH.bfSize = sizeof( BITMAPFILEHEADER ) + m_dwDibSize;
BFH.bfOffBits = sizeof( BITMAPFILEHEADER ) +
sizeof( BITMAPINFOHEADER ) +
m_nPaletteEntries * sizeof( RGBQUAD ); // Write the BITMAPFILEHEADER and the
// Dib data.
cf.Write( &BFH, sizeof( BITMAPFILEHEADER ) );
cf.Write( m_pDib, m_dwDibSize );
} // If we get an exception, delete the exception and
// return FALSE.
catch( CFileException *e )
{
e-> Delete();
return( FALSE );
}
//cf.close();
return( TRUE ); }这个是我在cdib类中定义的save函数,我想用opencv打开一幅图像,然后将它用dib保存起来。图像的数据能传给定义的dib对象,但用save保存时,不能实现。高手们帮我想想啊,万分感谢!!
{
DWORD dwSize;
HANDLE fp;
UCHAR* pDIB;
BITMAPFILEHEADER bfh;
PBITMAPINFOHEADER pbih;
SIZE_T zDIBsize;
zDIBsize = GlobalSize(hDIB);
bfh.bfType = 0x4d42; //"BM";
bfh.bfSize = (DWORD) (sizeof(BITMAPFILEHEADER) + zDIBsize);
bfh.bfReserved1 = 0;
bfh.bfReserved2 = 0;
pDIB = (UCHAR *)GlobalLock(hDIB);
pbih = (PBITMAPINFOHEADER)pDIB;
// Compute the offset to the array of color indices.
bfh.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) +
pbih->biSize + pbih->biClrUsed * sizeof (RGBQUAD);
fp = CreateFile(pszFileName, GENERIC_WRITE | GENERIC_READ , 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (fp == 0)
return FALSE;
WriteFile(fp, &bfh, sizeof(BITMAPFILEHEADER), &dwSize, NULL);
WriteFile(fp, pDIB, (L_UINT) zDIBsize, &dwSize, NULL);
CloseHandle(fp);
GlobalUnlock(hDIB);
return TRUE;
}