资源简介
编写了图像显示的类,只需要把控件ID和文件名以及句柄传送到函数,就可以显示图像,简单示例,供大家学习,VS2010+Opencv2.4.9
代码片段和文件信息
// ImgToControls.cpp : implementation file
//
#include “stdafx.h“
#include “PaintImgToScreenControls.h“
#include “ImgToControls.h“
#include “afxdialogex.h“
// ImgToControls dialog
IMPLEMENT_DYNAMIC(ImgToControls CDialogEx)
ImgToControls::ImgToControls(CWnd* pParent /*=NULL*/)
: CDialogEx(ImgToControls::IDD pParent)
{
}
ImgToControls::~ImgToControls()
{
}
void ImgToControls::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(ImgToControls CDialogEx)
END_MESSAGE_MAP()
// ImgToControls message handlers
void ImgToControls::drawpicinit(IplImage* img unsigned int idCWnd* showWnd)
{
//位图信息初始化
bmibuf = new BYTE[sizeof(BITMAPINFO)+256 * sizeof(RGBQUAD)];
memset(bmibuf 0 sizeof(bmibuf));
pbmi = (BITMAPINFO*)bmibuf;
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pbmi->bmiHeader.biWidth = img->width;
pbmi->bmiHeader.biHeight = img->height;
pbmi->bmiHeader.biPlanes = 1;
pbmi->bmiHeader.biBitCount = 24;
pbmi->bmiHeader.biCompression = BI_RGB;
mShowWnd = showWnd;
pDC = mShowWnd->GetDlgItem(id)->GetDC();
pic = (CStatic*)mShowWnd->GetDlgItem(id);
pic->GetClientRect(&rect);
g_hMemDC = CreateCompatibleDC(pDC->m_hDC);//创建兼容设备环境的内存DC
g_hBmp = CreateDIBSection(g_hMemDC pbmi DIB_RGB_COLORS (void**)&g_pBits 0 0);//创建应用程序可以直接写入的、与设备无关的位图
}
void ImgToControls::drawpic(IplImage* img)//CMFCOpenCVShowDlg 为对话框类名
{
//修改图像内容:g_pBits
//这里这么做一则为BMP图像的四字节对齐机制,二则是因为BMP图像是从图像的左下角开始算起的,如果直接拷贝会导致图像上下颠倒
int l_width = WIDTHBYTES(img->width* pbmi->bmiHeader.biBitCount);
for (int row = 0; row < img->height; row++)
memcpy(&g_pBits[row*l_width] &img->imageData[(img->height - row - 1)*l_width] l_width);
Selectobject(g_hMemDC g_hBmp);//将位图对象选入g_hMemDC内存DC中
//拉伸绘图
SetStretchBltMode(pDC->m_hDC HALFTONE);
StretchBlt(pDC->m_hDC 0 0 rect.Width() rect.Height() g_hMemDC 0 0 img->width img->height SRCCOPY);
}
void ImgToControls::drawrelease()
{
//释放内存资源
delete[]bmibuf;
DeleteDC(g_hMemDC);
Deleteobject(pic);
Deleteobject(g_hBmp);
mShowWnd->ReleaseDC(pDC);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3418 2017-11-27 15:09 PaintImgToScreenControls\Debug\cl.command.1.tlog
文件 100728 2017-11-27 15:09 PaintImgToScreenControls\Debug\CL.read.1.tlog
文件 2660 2017-11-27 15:09 PaintImgToScreenControls\Debug\CL.write.1.tlog
文件 129658 2017-11-27 15:09 PaintImgToScreenControls\Debug\ImgToControls.obj
文件 2 2017-11-27 15:09 PaintImgToScreenControls\Debug\li
文件 2 2017-11-27 15:09 PaintImgToScreenControls\Debug\li
文件 3310 2017-11-27 15:09 PaintImgToScreenControls\Debug\li
文件 9042 2017-11-27 15:09 PaintImgToScreenControls\Debug\li
文件 1754 2017-11-27 15:09 PaintImgToScreenControls\Debug\li
文件 884 2017-11-27 15:09 PaintImgToScreenControls\Debug\mt.command.1.tlog
文件 598 2017-11-27 15:09 PaintImgToScreenControls\Debug\mt.read.1.tlog
文件 634 2017-11-27 15:09 PaintImgToScreenControls\Debug\mt.write.1.tlog
文件 2599 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.Build.CppClean.log
文件 667 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.exe.em
文件 732 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.exe.em
文件 381 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.exe.intermediate.manifest
文件 60 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.lastbuildstate
文件 5347 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.log
文件 30321 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.obj
文件 33816576 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.pch
文件 69992 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.res
文件 0 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls.write.1.tlog
文件 146879 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControlsDlg.obj
文件 238 2017-11-27 15:09 PaintImgToScreenControls\Debug\PaintImgToScreenControls_manifest.rc
文件 1528 2017-11-27 15:09 PaintImgToScreenControls\Debug\rc.command.1.tlog
文件 3910 2017-11-27 15:09 PaintImgToScreenControls\Debug\rc.read.1.tlog
文件 798 2017-11-27 15:09 PaintImgToScreenControls\Debug\rc.write.1.tlog
文件 641909 2017-11-27 15:09 PaintImgToScreenControls\Debug\stdafx.obj
文件 2460672 2017-11-27 15:09 PaintImgToScreenControls\Debug\vc100.idb
文件 4386816 2017-11-27 15:09 PaintImgToScreenControls\Debug\vc100.pdb
............此处省略42个文件信息
相关资源
- Halcon+MFC实现相机畸变校正与手眼九点
- dll封装MFC对话框资源
- 计算路口通过车辆的 OPENCV C++
- 吃豆子游戏 C++
- MFC滚动字幕源码
- C++ MFC 吹泡泡 源代码
- 基于遗传算法的MFC矩形排样UI
- MFC IP地址 网关 MAC地址获取
- VS2008下MFC做的模拟时钟,还带数字显
- 基于MFC的图片浏览器代码
- modbus tcp/rtu客户端服务端通讯程序合集
- 基于MFC的音乐播放器代码
- MFC实现Button控件打开本地照片显示在
- Visual Studio2017使用MSComm控件MFC编程
- MFC+CSocket聊天室程序
- 餐饮管理系统 C语言+EasyX+MFC
- 利用mfc制作界面
- MFC list control 内嵌按钮以及样式
- MFC中将数据导出生成多个txt文件或其
- MFC子线程访问/控制对话框程序控件
- C++实现QQ聊天功能
- Student.zip166256
- MFC简单绘图及图片管理软件
- mfc-一元稀疏多项式计算器
- opencv结合MFC显示带滚动条的大图片
- mfc科学计算器
- MFCtcpip
- MFC读取文本文件
- MFC下页面切换程序
- 汽车客运售票系统 用MFC实现 带友好界
评论
共有 条评论