资源简介
数字图像处理mfc ,可以加深数字图像处理中相关算法的实现的理解
代码片段和文件信息
// DIB.cpp: implementation of the CDIB class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “dib.h“
#include
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*************************************************************************
* 基本构造函数
*************************************************************************/
CDIB::CDIB()
{
m_hDIB=NULL;
m_pPal=NULL;
}
CDIB::~CDIB()
{
if (m_hDIB != NULL) // 判断DIB对象是否存在
::GlobalFree((HGLOBAL) m_hDIB); // 清除DIB对象
m_hDIB=NULL;
if (m_pPal)
{
delete m_pPal;m_pPal=NULL;
}
}
/*************************************************************************
* 重载构造函数
*
* 参数:
* CFile& file - 要读取的文件CFile必须成功打开
*
* 说明:
* 重载构造函数将指定的文件中的DIB对象读到由m_hDIB指定的内存区域中。
* 除BITMAPFILEHEADER外的内容都将被读入内存。
*************************************************************************/
CDIB::CDIB(CFile file)
{
BITMAPFILEHEADER bmfh; // Bitmap文件头
DWORD dwBitsSize; // DIB大小
LPSTR pDIB; // 指向DIB的指针
m_pPal=NULL;
// 获取DIB图象的字节数(不包括文件头)
dwBitsSize = file.GetLength()-sizeof(BITMAPFILEHEADER);
// 尝试读取DIB文件头如果读取成功则在此已经将文件头读取了因此后面读取
// 到pDIB中的不包括文件头
if (file.Read((LPSTR)&bmfh sizeof(BITMAPFILEHEADER)) == sizeof(BITMAPFILEHEADER))
{
if (bmfh.bfType == MakeHeader()) // 头两个字节是“BM“
{
// 为DIB分配内存
m_hDIB = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT dwBitsSize);
if (m_hDIB != NULL) // 分配内存成功
{
pDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_hDIB); // 锁定
// 读象素
if (file.ReadHuge(pDIB dwBitsSize) != dwBitsSize) // 大小不对
{
::GlobalUnlock((HGLOBAL) m_hDIB); // 解除锁定
::GlobalFree((HGLOBAL) m_hDIB); // 释放内存
m_hDIB=NULL;
}
else
{
::GlobalUnlock((HGLOBAL) m_hDIB); // 解除锁定
}
}
}
else // 不是位图文件
{
m_hDIB=NULL;
}
}
else // 读取文件不成功
{
m_hDIB=NULL;
}
}
/*************************************************************************
* 拷贝构造函数
*
* 参数:
* CDIB SrcDIB - 要要拷贝的图象
*
* 说明:
* 拷贝构造函数将指定的图象复制到对象中。
*************************************************************************/
CDIB::CDIB(CDIB &SrcDIB)
{
m_pPal=NULL;
if (SrcDIB.GetHandle()==NULL)
m_hDIB=NULL;
else
{
LPSTR lpSrcDIB; // 源图象内存地址指针从信息头开始
LPSTR lpDesDIB; // 目标图象内存地址指针从信息头开始
int iHeight=SrcDIB.GetHeight(); // 源图象高度
int iBitsWidth=SrcDIB.GetBitsWidth(); // 源图象宽度
HANDLE hSrcDIB=SrcDIB.GetHandle(); // 源图象句柄
// 锁定源图象内存块并返回其起始位置指针
lpSrcDIB=(LPSTR) GlobalLock(hSrcDIB);
// 计算源图象所占据内存的字节数
unsigned long ulDibSize=*(LPDWORD)lpSrcDIB + SrcDIB.GetPaletteSize()
+iHeight * iBitsWidth;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-27 23:26 Sample\
目录 0 2015-09-23 08:29 Sample\.vs\
目录 0 2015-09-23 08:29 Sample\.vs\Sample\
目录 0 2015-09-23 08:29 Sample\.vs\Sample\v14\
文件 24576 2015-09-23 09:36 Sample\.vs\Sample\v14\.suo
目录 0 2015-09-23 08:30 Sample\Backup\
目录 0 2015-09-23 08:32 Sample\Backup1\
目录 0 2015-09-23 08:35 Sample\Backup2\
目录 0 2015-09-23 08:42 Sample\Backup3\
目录 0 2015-09-23 09:34 Sample\Backup4\
文件 425 2015-09-23 08:42 Sample\Backup4\Sample.sln
目录 0 2015-09-23 11:08 Sample\Debug\
文件 44431 2015-09-23 11:08 Sample\Debug\DIB.obj
文件 0 2015-09-23 11:08 Sample\Debug\DIB.sbr
文件 23299 2015-09-23 11:08 Sample\Debug\DlgGaussTemp.obj
文件 0 2015-09-23 11:08 Sample\Debug\DlgGaussTemp.sbr
文件 49357 2015-09-23 11:08 Sample\Debug\DlgSmooth.obj
文件 0 2015-09-23 11:08 Sample\Debug\DlgSmooth.sbr
文件 31296 2015-09-23 11:08 Sample\Debug\GeometricDlg.obj
文件 0 2015-09-23 11:08 Sample\Debug\GeometricDlg.sbr
文件 41827 2015-09-23 11:08 Sample\Debug\HistogramDlg.obj
文件 0 2015-09-23 11:08 Sample\Debug\HistogramDlg.sbr
文件 40456 2015-09-23 11:08 Sample\Debug\ImageEnhenceDlg.obj
文件 0 2015-09-23 11:08 Sample\Debug\ImageEnhenceDlg.sbr
文件 66067 2015-09-23 11:08 Sample\Debug\ImageFilterDlg.obj
文件 0 2015-09-23 11:08 Sample\Debug\ImageFilterDlg.sbr
文件 64249 2015-09-23 11:08 Sample\Debug\ImageSharpDlg.obj
文件 0 2015-09-23 11:08 Sample\Debug\ImageSharpDlg.sbr
文件 22366 2015-09-23 00:17 Sample\Debug\nrutil.obj
文件 0 2015-09-23 00:17 Sample\Debug\nrutil.sbr
文件 20880 2015-09-23 11:08 Sample\Debug\OpenAndDspDlg.obj
............此处省略230个文件信息
- 上一篇:文件加密软件与信息隐藏
- 下一篇:H264 TS打包C语言源代码
相关资源
- mfc实现滑动窗口的简单模拟
- OBJ 模型文件读取显示 基于OpenGL MFC界
- 基于vs 2010 mfc实现对excel数据的读取,
- MFC动态加载和静态加载bmp类型图片
- 扫雷小游戏 完整源码
- 指针式仪表识别(MFC)
- 高斯投影正反算MFC
- 白塞尔大地主题解算MFC
- 基于MFC的OpenCV图像显示并标记ROI
- CEF:MFC 对话框 DemoVS2013
- MFC 音乐播放器傻 瓜教程
- MFC聊天室与文件传输
- MFC多语言界面切换
- 牛哥推荐很好的CMFCOutlookBar
- MSDN中文版下载261719
- MFC写的QQ应用程序
- 进程/作业调度:时间片轮转调度算法
- MFC窗口打开ppt,可通过UDP控制。
- MFC教程.zip
- MFC课程设计:职工信息管理系统
- OpenCV和MFC的+界面程序+各种图像处理操
- 深入浅出mfc侯捷 简体中文版
-
MFC Media pla
yer控件制作的播放器 - MFC TAB control
- PictureControl
- 不用MFC写的小游戏
- mfc数据库图书管理系统
- C++图像处理系统源代码
- c++实现基于停等协议的可靠udp传输的
- MFC+VS2013+OPENCV3.0打开摄像头,拍照并处
评论
共有 条评论