• 大小: 11.66MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-28
  • 语言: 其他
  • 标签: 图像处理  

资源简介

图像处理

资源截图

代码片段和文件信息

// cdib.cpp
// new version for WIN32
#include “stdafx.h“
#include “cdib.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

IMPLEMENT_SERIAL(CDib Cobject 0);

CDib::CDib()
{
m_hFile=NULL;
m_hBitmap=NULL;
m_hPalette=NULL;
m_hMap=NULL;
m_Dest.x=0;
m_Dest.y=0;
m_DestSize.cx=0;
m_DestSize.cy=0;
m_Src.x=0;
m_Src.y=0;
m_SrcSize.cx=0;
m_SrcSize.cy=0;
InitDestroy();
}
CDib::CDib(CSize sizeint nBitCounts)
{
m_hFile=NULL;
m_hBitmap=NULL;
m_hPalette=NULL;
InitDestroy();
ComputePaletteSize(nBitCounts);
m_lpBMPHdr=(LPBITMAPINFOHEADER)new
             char[sizeof(BITMAPINFOHEADER)+
sizeof(RGBQUAD)* m_nColorEntries];
m_lpBMPHdr->biSize=sizeof(BITMAPINFOHEADER);
    m_lpBMPHdr->biWidth=size.cx;
m_lpBMPHdr->biHeight=size.cy;
m_lpBMPHdr->biPlanes=1;
m_lpBMPHdr->biBitCount=nBitCounts;
m_lpBMPHdr->biCompression=BI_RGB;
m_lpBMPHdr->biSizeImage=0;
m_lpBMPHdr->biXPelsPerMeter=0;
m_lpBMPHdr->biYPelsPerMeter=0;
m_lpBMPHdr->biClrUsed=m_nColorEntries;
m_lpBMPHdr->biClrImportant=m_nColorEntries;
ComputeImage();
memset(m_lpvColorTable0sizeof(RGBQUAD)* m_nColorEntries);
m_lpDIBits=NULL;
}

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

void CDib::InitDestroy()
{
ReleaseMapFile();
if(m_hPalette!=NULL)::Deleteobject(m_hPalette);
if(m_hBitmap!=NULL)::Deleteobject(m_hBitmap);
m_hGlobal=NULL;
m_lpBMPHdr=NULL;
m_lpDIBits=NULL;
m_lpvColorTable=NULL;
m_nColorEntries=0;
m_dwImageSize=0;
m_lpvFile=NULL;
m_hMap=NULL;
m_hFile=NULL;
m_hBitmap=NULL;
m_hPalette=NULL;
}

void CDib::ComputeImage()
{
if(m_lpBMPHdr->biSize!=sizeof(BITMAPINFOHEADER))
{
TRACE(“Not a valie Windows bitmap probably an OS/2 bitmap\n“);
throw new CException;
}
m_dwImageSize=m_lpBMPHdr->biSizeImage;
if(m_dwImageSize==0)
{
DWORD dwBytes=((DWORD)m_lpBMPHdr->biWidth*
                m_lpBMPHdr->biBitCount)/32;
if(((DWORD)m_lpBMPHdr->biWidth*
    m_lpBMPHdr->biBitCount)%32)
{
dwBytes++;
}
dwBytes*=4;

m_dwImageSize=dwBytes* m_lpBMPHdr->biHeight;
}
m_lpvColorTable=(LPBYTE)m_lpBMPHdr+sizeof(BITMAPINFOHEADER);
}

void CDib::ComputePaletteSize(int nBitCounts)
{
if((m_lpBMPHdr==NULL)||(m_lpBMPHdr->biClrUsed==0)){
        switch(nBitCounts)
{
case 1:
m_nColorEntries=2;
break;
case 4:
m_nColorEntries=16;
break;
case 8:
m_nColorEntries=256;
break;
case 16:
case 24:
case 32:
m_nColorEntries=0;
break;
default:
ASSERT(FALSE);
}
}
else 
{
m_nColorEntries=m_lpBMPHdr->biClrUsed;
}
ASSERT((m_nColorEntries>=0)&&(m_nColorEntries>=256));
}

int CDib::GetHeight()
{
if(m_lpBMPHdr==NULL)return 0;
return m_lpBMPHdr->biHeight;
}

int CDib::GetWidth()
{
if(m_lpBMPHdr==NULL) return 0;
return m_lpBMPHdr->biWidth;
}

BOOL CDib::SetLogPalette(CDC* pDC)
{
if(m_nColorEntries!=0)return FALSE;
m_hPalette=::CreateHalftonePalette(pD

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-06-16 07:27  Show2\
     目录           0  2012-10-30 15:29  Show2\Debug\
     目录           0  2012-10-30 15:28  Show2\Show\
     文件         879  2012-05-23 20:58  Show2\Show.sln
     文件       41472  2012-10-30 15:34  Show2\Show.suo
     文件       16353  2012-05-26 14:18  Show2\Show\cdib.cpp
     文件        1828  2012-05-25 22:49  Show2\Show\cdib.h
     文件        9167  2012-05-24 08:51  Show2\Show\ClassView.cpp
     文件        1309  2012-05-24 08:46  Show2\Show\ClassView.h
     文件         618  2012-05-28 00:00  Show2\Show\Csfyd.cpp
     文件         382  2012-05-28 00:00  Show2\Show\Csfyd.h
     目录           0  2012-10-30 15:33  Show2\Show\Debug\
     文件       77849  2012-10-30 15:33  Show2\Show\Debug\cdib.obj
     文件       12248  2012-10-30 15:33  Show2\Show\Debug\cl.command.1.tlog
     文件       76476  2012-10-30 15:33  Show2\Show\Debug\CL.read.1.tlog
     文件        7514  2012-10-30 15:33  Show2\Show\Debug\CL.write.1.tlog
     文件      189766  2012-10-30 15:33  Show2\Show\Debug\ClassView.obj
     文件       21992  2012-10-30 15:33  Show2\Show\Debug\Csfyd.obj
     文件       28876  2012-10-30 15:33  Show2\Show\Debug\DibDialog.obj
     文件       73353  2012-10-30 15:33  Show2\Show\Debug\Dibn.obj
     文件      136925  2012-10-30 15:33  Show2\Show\Debug\FileView.obj
     文件      103962  2012-10-30 15:33  Show2\Show\Debug\MainFrm.obj
     文件       24173  2012-10-30 15:33  Show2\Show\Debug\NameHide.obj
     文件       99897  2012-10-30 15:33  Show2\Show\Debug\OutputWnd.obj
     文件       30494  2012-10-30 15:33  Show2\Show\Debug\ProcessToolForImg.obj
     文件      175798  2012-10-30 15:33  Show2\Show\Debug\PropertiesWnd.obj
     文件        1406  2012-10-30 15:32  Show2\Show\Debug\Show.Build.CppClean.log
     文件          66  2012-10-30 15:32  Show2\Show\Debug\Show.lastbuildstate
     文件        5369  2012-10-30 15:33  Show2\Show\Debug\Show.log
     文件       57369  2012-10-30 15:33  Show2\Show\Debug\Show.obj
     文件    33816576  2012-10-30 15:33  Show2\Show\Debug\Show.pch
............此处省略70个文件信息

评论

共有 条评论