社区
图形处理/算法
帖子详情
MFC中BMP图像读取显示求助
fdesheng
2011-11-21 10:34:06
第一种方法是从网上下的CDib类读取显示,结果问题如下:图片随静态文本框的大小显示效果不一样,而且不好(如图1.2)。
第二种方法是用matcom实现,结果显示正常,但是图像在静态文本框中显示太小,而且有坐标(如图3)。
...全文
817
5
打赏
收藏
MFC中BMP图像读取显示求助
第一种方法是从网上下的CDib类读取显示,结果问题如下:图片随静态文本框的大小显示效果不一样,而且不好(如图1.2)。 第二种方法是用matcom实现,结果显示正常,但是图像在静态文本框中显示太小,而且有坐标(如图3)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fdesheng
2011-11-23
打赏
举报
回复
谢谢各位,现在用CImage类实现了读取显示图像,但是问题又来了,图像处理后只有图像矩阵,不知道该怎么显示出来,各位帮帮忙,最好具体点,谢谢。如果能QQ指导就更好了,QQ1050289814
fdesheng
2011-11-21
打赏
举报
回复
第一个的主要代码:CFileDialog fileDialog(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");
if(IDOK==fileDialog.DoModal())
{
CDib dib;
if(dib.Load(fileDialog.GetPathName()))
{
CRect rect;
CWnd *pwnd=GetDlgItem(IDC_BMP);
pwnd->GetClientRect(&rect);
CDC *pdc=pwnd->GetDC();
dib.SetPalette(pdc);
dib.Draw(pdc,rect.TopLeft().x,rect.TopLeft().y,rect.Width(),rect.Height());
}
}
第二个的主要代码: static char BASED_CODE szFilter[]=
"BMP格式文件(*.bmp)|*.bmp|所有格式的文件(*.*)|*.*||";
CFileDialog dlg(1,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,this);
if(dlg.DoModal()==IDOK)
{
CString filename=dlg.GetPathName();
m_h=winaxes(this->m_hWnd);
char *file;
file=filename.GetBuffer(filename.GetLength());
filename.ReleaseBuffer();
Mm mFileName=TM(file);
imread(mFileName,TM("*.bmp"),i_o,m_data,m_map);
int *pdims=m_data.getdims();
int ndims=m_data.getndims();
int nrow=m_data.rows();
int ncol=m_data.cols();
m_data=im2double(m_data);
m_wnd_pic1=(CWnd *)GetDlgItem(IDC_PIC1);
m_axis_pic1=winaxes(m_wnd_pic1->m_hWnd);
CRect rect_pic1;
m_wnd_pic1->GetClientRect(rect_pic1);
axes(CL(m_axis_pic1));
axesposition(rect_pic1.TopLeft().x,rect_pic1.TopLeft().y,
rect_pic1.Width(),rect_pic1.Height());
//set(m_h,TM("Cdata"),m_data);
colormap(gray());
set(m_axis_pic1,(CL(TM("Color")),TM("white")));
imagesc(CL(m_data));
greatliudy123
2011-11-21
打赏
举报
回复
View类中的显示函数 不知道 是不是你想要的
CDSplitDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if(!pDoc ->statedoc&&state2==1)
{
BYTE* pBitmapData = CDibNew1->GetData();
LPBITMAPINFO pBitmapInfo = CDibNew1->GetInfo();
int bitmapHeight = CDibNew1->GetHeight();
int bitmapWidth = CDibNew1->GetWidth();
if (CDibNew1->GetRGB()) // Has a color table
{
CPalette * hPalette=CreateBitmapPalette(CDibNew1);
CPalette * hOldPalette =
pDC->SelectPalette(hPalette, true);
pDC->RealizePalette();
::StretchDIBits(pDC->GetSafeHdc(),0, 0, bitmapWidth, bitmapHeight,
0, 0, bitmapWidth, bitmapHeight,
pBitmapData, pBitmapInfo,
DIB_RGB_COLORS, SRCCOPY);
pDC->SelectPalette(hOldPalette, true);
::DeleteObject(hPalette);
}
else
{
StretchDIBits(pDC->GetSafeHdc(),
0, 0, bitmapWidth, bitmapHeight,
0, 0, bitmapWidth, bitmapHeight,
pBitmapData, pBitmapInfo,
DIB_RGB_COLORS, SRCCOPY);
}
fdesheng
2011-11-21
打赏
举报
回复
[Quote=引用 2 楼 fengbingchun 的回复:]
试试利用CxImage来显示图像,很方便
[/Quote]用CDib不能很好的显示图像吗??我的程序中只是显示图像,其他对图像的操作不是通过c语言实现的,O(∩_∩)O谢谢
fengbingchun
2011-11-21
打赏
举报
回复
试试利用CxImage来显示图像,很方便
C++
MFC
实战速成教程(VS2013)上
本教程,则排除一切对初步者的干扰,从
MFC
庞大的结构
中
,单刀直入,取出最核心的类,以简明易懂的方式,剖析于学员面前。 并通过纯手工方式编写
MFC
的程序,把
MFC
的基础架构,功能,由来,作用一一详细展示。以此为...
[收藏夹整理]OpenCV部分
【数字
图像
处理】C++
读取
、旋转和保存
bmp
图像
文件编程实现 混合高斯模型算法
图像
处理
中
的拉普拉斯算子 神经网络编程入门 bp神经网络及matlab实现
图像
处理之
图像
快速旋转算法
BMP
文件结构 各学...
CSDN回帖得分大全(近两年)
√vs2005调用dll的时候Initialize()函数返回错误 [VC/
MFC
... [VC/
MFC
界面] 40 chencheng8095 05-23 00:2911 xianglitian06-10 11:51管理√CFileFind::FindFile 支持通配符么? [VC/
MFC
基础类] 100 wysbk002 05-22
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存
中
的图象
显示
到客户端Microsoft IE WebControls下载地址如何在DATAGRID
中
使用JAVASCRIPT脚本控制DataGrid
中
连接到...
基础
各位兄弟,在SDK编程
中
如果实现窗口分割呢?请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?高分请教如何限制程序运行的方法?
求助
:通过编程DirectX抓屏-----...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章