资源简介
在MFC下用C++实现DICOM图像的打开,调整窗位、窗宽,DICOM图像.bmp格式保存的功能。该资源包含工程文件,注释较详细,各项功能均通过测试。

代码片段和文件信息
// BitMap.cpp: implementation of the CBitMap class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “MyDICOM.h“
#include “BitMap.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBitMap::CBitMap()
{
m_dwBMPSize=0;
m_dwDibSize=0;
m_lSizeOfPixel=0;
m_nPaltteEntries=256;
m_pBIH=NULL;
m_pCurrentDib=NULL;
m_pDib=NULL;
m_pTopOfDib=NULL;
m_pDibPaltte=NULL;
m_lWidth=0;
m_lHeight=0;
}
CBitMap::~CBitMap()
{
m_pBIH=NULL;
if (m_pCurrentDib!=NULL&&m_pCurrentDib!=m_pDib)
{
delete []m_pCurrentDib;
m_pCurrentDib=NULL;
}
m_pDib=NULL;
m_pCurrentDib=NULL;
if (!m_pTopOfDib==NULL)
{
delete []m_pTopOfDib;
m_pTopOfDib=NULL;
}
m_pDibPaltte=NULL;
}
BITMAPINFOHEADER* CBitMap::GetpBIH()
{
return m_pBIH;
}
int CBitMap::GetPaltteEntries()
{
return m_nPaltteEntries;
}
void CBitMap::InitialBIH(WORD biBitCount DWORD biClrImportant DWORD biClrUsed DWORD biCompression LONG biHeight LONG biWidth WORD biPlanes DWORD biSize DWORD biSizeImage LONG biXPelsPerMeter LONG biYPelsPerMeter)
{
// double odd=biHeight-(int)biHeight/4;
// if(odd!=0)
// {
// biHeight=((int)biHeight/4+1)*4;
// }
m_pBIH->biBitCount=biBitCount;
m_pBIH->biClrImportant=biClrImportant;
m_pBIH->biClrUsed=biClrUsed;
m_pBIH->biCompression=biCompression;
m_pBIH->biHeight=biHeight;
m_pBIH->biWidth=biWidth;
m_pBIH->biPlanes=biPlanes;
m_pBIH->biSize=biSize;
m_pBIH->biSizeImage=biSizeImage;
m_pBIH->biXPelsPerMeter=biXPelsPerMeter;
m_pBIH->biYPelsPerMeter=biYPelsPerMeter;
}
unsigned char* CBitMap::GetpDibPaltte()
{
return m_pDibPaltte;
}
void CBitMap::InitialColorPaltte()
{
int ij;
int size1=sizeof(RGBQUAD);
for (i=0;i {
for (j=0;j {
if(j==3)
m_pDibPaltte[i*size1+j]=0;
else
m_pDibPaltte[i*size1+j]=i;
}
}
}
void CBitMap::SetpDibPaltte(unsigned char *pDibPaltte)
{
m_pDibPaltte=pDibPaltte;
}
void CBitMap::SetCurrentWidth(long Width)
{
m_lWidth=Width;
}
void CBitMap::SetCurrentHeight(long Height)
{
m_lHeight=Height;
}
BOOL CBitMap::Draw(CDC *pDC)
{
if (m_pCurrentDib==NULL)
{
return FALSE;
}
::StretchDIBits(pDC->m_hDC00m_lWidthm_lHeight00m_lWidthm_lHeightm_pCurrentDib(BITMAPINFO *)m_pTopOfDibDIB_RGB_COLORSSRCCOPY);
return TRUE;
}
BOOL CBitMap::SaveFile(const char *pFileName)
{
if (m_pTopOfDib==NULL)
{
return FALSE;
}
CFile WFile;
if(!WFile.Open(pFileNameCFile::modeCreate|CFile::modeWriteNULL))
{
return FALSE;
}
BITMAPFILEHEADER BFH;
BFH.bfType=‘MB‘;
BFH.bfSize=sizeof(BITMAPFILEHEADER)+m_dwDibSize;
BFH.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMA
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3173 2010-12-28 13:39 MyDICOM\BitMap.cpp
文件 2182 2010-12-28 12:41 MyDICOM\BitMap.h
文件 12013 2011-01-03 18:48 MyDICOM\Debug\BitMap.obj
文件 20160 2011-01-23 17:09 MyDICOM\Debug\DICOM.obj
文件 6089 2011-01-03 18:48 MyDICOM\Debug\ImageInfo.obj
文件 19715 2011-01-03 18:48 MyDICOM\Debug\MainFrm.obj
文件 139332 2011-01-23 17:09 MyDICOM\Debug\MyDICOM.exe
文件 353548 2011-01-23 17:09 MyDICOM\Debug\MyDICOM.ilk
文件 22867 2011-01-03 18:48 MyDICOM\Debug\MyDICOM.obj
文件 5498748 2011-01-03 18:48 MyDICOM\Debug\MyDICOM.pch
文件 467968 2011-01-23 17:09 MyDICOM\Debug\MyDICOM.pdb
文件 10052 2011-01-03 18:48 MyDICOM\Debug\MyDICOM.res
文件 30508 2011-01-03 18:48 MyDICOM\Debug\MyDICOMDoc.obj
文件 24809 2011-01-03 18:48 MyDICOM\Debug\MyDICOMView.obj
文件 6710 2011-01-03 18:48 MyDICOM\Debug\PatientInfo.obj
文件 105430 2011-01-03 18:48 MyDICOM\Debug\StdAfx.obj
文件 205824 2011-01-23 17:09 MyDICOM\Debug\vc60.idb
文件 364544 2011-01-23 17:09 MyDICOM\Debug\vc60.pdb
文件 8665 2011-01-23 17:09 MyDICOM\DICOM.cpp
文件 1510 2010-12-19 14:14 MyDICOM\DICOM.h
文件 876 2010-12-28 12:34 MyDICOM\ImageInfo.cpp
文件 1456 2010-12-28 12:34 MyDICOM\ImageInfo.h
文件 2508 2010-12-08 19:39 MyDICOM\MainFrm.cpp
文件 1581 2010-12-08 19:39 MyDICOM\MainFrm.h
文件 47244 2010-12-28 11:47 MyDICOM\MyDICOM.aps
文件 4303 2011-01-23 17:10 MyDICOM\MyDICOM.clw
文件 4227 2010-12-08 19:39 MyDICOM\MyDICOM.cpp
文件 5223 2010-12-19 14:51 MyDICOM\MyDICOM.dsp
文件 539 2010-12-08 19:39 MyDICOM\MyDICOM.dsw
文件 1367 2010-12-08 19:39 MyDICOM\MyDICOM.h
............此处省略27个文件信息
- 上一篇:AES加密解密算法实现C、C++
- 下一篇:足球机器人仿真代码 C++
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- 用C语言进行数字图像处理
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- Visual+C++数字图像处理-谢凤英-源代码
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
评论
共有 条评论