• 大小: 4.39MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: C/C++
  • 标签:

资源简介

提供了五个MFC数字图像处理范例,均可运行。

资源截图

代码片段和文件信息

// MyDib.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

/*
 * Dib文件头标志(字符串“BM“)
 */
#define DIB_MARKER   ((WORD) (‘M‘ << 8) | ‘B‘)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDib::CDib()
{
InitMembers();
}

CDib::~CDib()
{
ClearMemory();
}

/*************************************************************************
 * 函数名称:DrawDib()
 * 参数说明:
 *   HDC hDC,输出设备DC
 *   LPRECT lpDCRect,绘制矩形区域
 *   HGLOBAL hDIB ,DIB对象的句柄
 *   LPRECT lpDIBRect ,DIB的输出区域
 *   CPalette* pPal,调色板的指针
 * 函数类型:BOOL
 * 函数功能:该函数主要用来绘制DIB对象   
 ************************************************************************/

BOOL CDib::DrawDib(HDC     hDC
LPRECT  lpDCRect
HGLOBAL    hDIB
LPRECT  lpDIBRect
CPalette* pPal)
{
BOOL     bSuccess=FALSE;      // 重画成功标志
HPALETTE hOldPal=NULL;        // 以前的调色板
if (hDIB == NULL)// 判断是否是有效的DIB对象
{
return FALSE;// 不是,则返回
}
lpdib  = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 锁定DIB
lpDIBBits = GetBits(lpdib);// 找到DIB图象像素起始位置
if (pPal != NULL)// 获取DIB调色板,并选取到设备环境中它
{
HPALETTE hPal = (HPALETTE) pPal->m_hobject;
hOldPal = ::SelectPalette(hDC hPal TRUE);
}
::SetStretchBltMode(hDC COLORONCOLOR);// 设置显示模式
bSuccess = ::StretchDIBits(hDC // 设备环境句柄
   lpDCRect->left                 //目标X坐标
   lpDCRect->top                  // 目标Y坐标
   GetRectWidth(lpDCRect)            // 目标宽度
   GetRectHeight(lpDCRect)           // 目标高度
   lpDIBRect->left                // 源X坐标
   lpDIBRect->top                 // 源Y坐标
   GetRectWidth(lpDIBRect)           // 源宽度
   GetRectHeight(lpDIBRect)          // 源高度
   lpDIBBits                      // 指向dib像素的指针
   (LPBITMAPINFO)lpdib         // 指向位图信息结构的指针
   DIB_RGB_COLORS                 // 使用的颜色数目
   SRCCOPY);                       // 光栅操作类型
::GlobalUnlock(hDIB); // 解除锁定
if (hOldPal != NULL)// 恢复系统调色板
{
::SelectPalette(hDC hOldPal TRUE);
}
return bSuccess;
}

/*************************************************************************
 * 函数名称:ConstructPalette(HGLOBAL hDIB CPalette* pPal)
 * 函数参数:
 *   HGLOBAL hDIB,DIB对象的句柄
 *   CPalette* pPal,调色板的指针
 * 函数类型:BOOL
 * 函数说明:该函数按照DIB创建一个逻辑调色板  
 ************************************************************************/

BOOL CDib::ConstructPalette(HGLOBAL hDIB CPalette* pPal)
{

HANDLE hLogPal;// 逻辑调色板的句柄
int iLoop;// 循环变量
BOOL bSuccess = FALSE;// 创建结果
if (hDIB == NULL)//判断是否是有效的DIB对象
{
return FALSE;// 返回FALSE
}
lpdib = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 锁定DI

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      13811  2008-06-12 17:06  第16章 数字图像处理\实例380——创建DIB操作的类——CDib\Dib.cpp

     文件       2252  2008-06-12 17:06  第16章 数字图像处理\实例380——创建DIB操作的类——CDib\Dib.h

     文件       1538  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ChildFrm.cpp

     文件       1397  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ChildFrm.h

     文件     135262  2008-06-12 19:55  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\Debug\ShowSaveBMP.exe

     文件      13811  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\Dib.cpp

     文件       2252  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\Dib.h

     文件       2528  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\MainFrm.cpp

     文件       1542  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\MainFrm.h

     文件       4901  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ReadMe.txt

     文件       1078  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\res\ShowSaveBMP.ico

     文件        403  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\res\ShowSaveBMP.rc2

     文件       1078  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\res\ShowSaveBMPDOC.ico

     文件       1078  2007-02-25 08:44  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\res\Toolbar.bmp

     文件        499  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\Resource.h

     文件      30019  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.aps

     文件       2900  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.clw

     文件       4568  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.cpp

     文件       4903  2008-06-12 19:59  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.dsp

     文件        547  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.dsw

     文件       1411  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.h

     文件      58368  2008-06-12 19:59  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.ncb

     文件      53760  2008-06-12 19:59  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.opt

     文件        256  2008-06-12 19:59  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.plg

     文件      12031  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMP.rc

     文件       4643  2008-06-12 19:55  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMPDOC.cpp

     文件       2130  2008-06-12 19:40  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMPDOC.h

     文件       3387  2008-06-12 19:55  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMPVIEW.cpp

     文件       1971  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\ShowSaveBMPVIEW.h

     文件        213  2008-06-12 17:06  第16章 数字图像处理\实例381——使用CDib类实现显示与保存BMP文件\ShowSaveBMP\StdAfx.cpp

............此处省略118个文件信息

评论

共有 条评论