资源简介
在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音乐播放
- 工资管理系统 mfc c++
- 图书馆管理系统 c++ mfc
- MFC课程设计 --学生成绩管理系统
- 基于MFC的FTP客户端demo
- VC画正弦函数曲线带参数设置
- matlab算法实现声纹识别,带界面
- 基于C++MFC的聊天程序,C/S模式
- MFC ListControl使用
- 21点游戏MFC程序设计 c++课程设计
- MFC 多线程.7z
- mfc编写的像素鸟flappy bird 小游戏-FP_
- ethercat电机mfc简单连接程序
- VC++窗口和控件自适应屏幕尺寸改.ra
- mfc 画多个矩形框,可选中任意一个移
- MFC属性表单
- MFC框架 网络版五子棋 包含游戏大厅
- MFC读取RTSP视频流
- mfc制作的圆形时钟
- 数字图像处理与机器视觉(Visual C++与
- 五子棋大作业源码 .zip
- Excel-demo
- 基于mfc的smtp客户端程序
- MFC CCriticalSection 关键段
- C++后缀表达式计算器MFC功能强大
- MFC 视频播放器
- MFC 实时曲线绘制
- 图书馆管理系统MFC版
- 基于VS2010的MFC对话框计算器程序
- MFC显示tiff图像
评论
共有 条评论