资源简介
图像处理
代码片段和文件信息
// 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个文件信息
相关资源
- 信息熵在图像处理中的应用
- 数字图像处理第二版冈萨雷斯书与答
- OpenCV4.2.0已编译好的32位库
- RemoteSensing Digital Image Analysis
- ENVI遥感图像处理教程系列
- 《医学图像处理与分析》第二版--罗述
- 图像处理第四版讲义 章毓晋
- Computer Vision with OpenCV 3 and Qt5 pdf + co
- 数字图像处理冈萨雷斯ppt
- 手势识别源代码+说明文档绝对原创、
- 数字图像处理电子版pdf
- 数字图像处理第三版中文答案 冈萨雷
- 刘定生老师及北京大学数字图像处理
- 图像处理与分析-变分、PDE、小波及随
- 数字图像处理第3版清华—李俊山
- 冈萨雷斯+数字图像处理+第二版 中文
- 图像处理数据库polyu
- 多媒体处理FPGA实现-System Generator篇完
- 数字图像处理第二版冈萨雷斯中文版
- OpenCV3.2编译文件
- Digital Image Processing 4th Edition 数字图像
- zw_红外图像处理、分析与融合.zip
- 数字图像处理经典测试图片全集
- 基于BP神经网络的数字识别系统源代码
- 数字图像处理第3版pdf
- 光电大赛图像处理文献及资料整理
- 医学图像处理
- 对Dxva2解码数据进行简单图像处理
- QT+opencv的图像处理
- 图像工程 第四版 上册 图像处理 讲义
评论
共有 条评论