• 大小: 208KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: C/C++
  • 标签: 图像拼接  

资源简介

该程序能有效实现图像的拼接,使用VC++实现,绝对可靠。

资源截图

代码片段和文件信息

// Dib.cpp: implementation of the CDib class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Dib.h“
#include “windowsx.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDib::CDib(const char* dibFileName)
{
  strcpy(m_fileNamedibFileName);
  LoadFile();
}
/*************************************************************************
 *
 * \函数名称:
 *   CDib()
 *
 * \输入参数:
 * CSize size - 位图尺寸
 * int nBitCount - 象素位数
 *
 * \返回值:
 *   无
 *
 * \说明:
 *   构造函数
 *   根据给定的位图尺寸和象素位数构造CDib对象,并对信息头和调色板分配内存
 *   但并没有给位图数据分配内存
 *
 ************************************************************************
 */
CDib::CDib(CSize size int nBitCount)
{
    DWORD totalbytes;
totalbytes=sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD)+(size.cx*nBitCount+31)/32*4*size.cy;
BYTE* pDib=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLEtotalbytes);

    m_pBitmapInfo=(BITMAPINFO*)pDib;
    m_pBitmapInfoHeader=(BITMAPINFOHEADER*)pDib;
m_pBitmapInfoHeader->biSize = sizeof(BITMAPINFOHEADER);
m_pBitmapInfoHeader->biWidth = size.cx;
m_pBitmapInfoHeader->biHeight = size.cy;
m_pBitmapInfoHeader->biPlanes = 1;
m_pBitmapInfoHeader->biBitCount = nBitCount;
m_pBitmapInfoHeader->biCompression = BI_RGB;
m_pBitmapInfoHeader->biSizeImage = 0;
m_pBitmapInfoHeader->biXPelsPerMeter = 0;
m_pBitmapInfoHeader->biYPelsPerMeter = 0;
m_pBitmapInfoHeader->biClrUsed = 0;

    m_pRGB=(RGBQUAD*)(pDib+m_pBitmapInfoHeader->biSize);


m_numberOfColors=GetNumberOfColors();
if(m_pBitmapInfoHeader->biClrUsed==0)
m_pBitmapInfoHeader->biClrUsed=m_numberOfColors;
DWORD colorTableSize=m_numberOfColors*sizeof(RGBQUAD);
    m_pData=pDib+m_pBitmapInfoHeader->biSize+colorTableSize;
    m_pBitmapInfoHeader->biSizeImage=GetSize();
    m_valid=TRUE;
}

CDib::~CDib()
{
    GlobalFreePtr(m_pBitmapInfo);
}
void CDib::LoadFile()
{
CFile dibFile(m_fileNameCFile::modeRead);

BITMAPFILEHEADER bmf;
dibFile.Read((void*)&bmfsizeof(BITMAPFILEHEADER));

if(bmf.bfType==0x4d42)
{
DWORD fileLength=dibFile.GetLength();
DWORD size=fileLength-sizeof(BITMAPFILEHEADER);
BYTE* pDib=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLEsize);
        dibFile.Read((void*)pDibsize);
dibFile.Close();
m_pBitmapInfo=(BITMAPINFO*)pDib;
        m_pBitmapInfoHeader=(BITMAPINFOHEADER*)pDib;
        m_pRGB=(RGBQUAD*)(pDib+m_pBitmapInfoHeader->biSize);
m_numberOfColors=GetNumberOfColors();
if(m_pBitmapInfoHeader->biClrUsed==0)
            m_pBitmapInfoHeader->biClrUsed=m_numberOfColors;
DWORD colorTableSize=m_numberOfColors*sizeof(RGBQUAD);
        m_pData=pDib+m_pBitmapInfoHeader->biSize+colorTableSize;
        m_pBitmapInfoHeader->biSizeImage=GetSize();
m_valid=TRUE;
}

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

     文件     490934  2004-03-26 08:25  拼接\da.bmp

     文件       5910  2004-03-25 16:59  拼接\Dib.cpp

     文件       1064  2004-05-13 21:12  拼接\Dib.h

     文件      28580  2004-05-13 19:53  拼接\ImgMatch.aps

     文件       2684  2004-05-13 21:15  拼接\ImgMatch.clw

     文件       4291  2004-03-18 10:09  拼接\ImgMatch.cpp

     文件       4977  2004-03-18 17:16  拼接\ImgMatch.dsp

     文件        539  2004-03-18 10:01  拼接\ImgMatch.dsw

     文件       1378  2004-03-18 10:01  拼接\ImgMatch.h

     文件     148480  2004-05-13 21:24  拼接\ImgMatch.ncb

     文件      57856  2004-05-13 21:24  拼接\ImgMatch.opt

     文件        250  2004-05-13 21:24  拼接\ImgMatch.plg

     文件      11294  2004-04-29 10:00  拼接\ImgMatch.rc

     文件      29690  2004-05-13 21:18  拼接\ImgMatchDoc.cpp

     文件       2376  2004-05-13 21:16  拼接\ImgMatchDoc.h

     文件       7611  2004-04-29 10:54  拼接\ImgMatchView.cpp

     文件       2021  2004-03-19 11:22  拼接\ImgMatchView.h

     文件       3420  2004-03-24 11:21  拼接\MainFrm.cpp

     文件       1603  2004-03-24 11:21  拼接\MainFrm.h

     文件       4359  2004-03-18 10:01  拼接\ReadMe.txt

     文件       1078  2004-03-18 10:01  拼接\res\ImgMatch.ico

     文件        400  2004-03-18 10:01  拼接\res\ImgMatch.rc2

     文件       1078  2004-03-18 10:01  拼接\res\ImgMatchDoc.ico

     文件       1078  2004-03-18 10:01  拼接\res\Toolbar.bmp

    ..A.SH.         9  2006-10-08 15:37  拼接\res\_desktop.ini

     文件        875  2004-04-29 10:00  拼接\Resource.h

     文件       6348  2004-04-29 10:54  拼接\SecondView.cpp

     文件       1579  2004-03-19 11:22  拼接\SecondView.h

     文件        210  2004-03-18 10:01  拼接\StdAfx.cpp

     文件       1054  2004-03-18 10:01  拼接\StdAfx.h

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

评论

共有 条评论