• 大小: 1.91MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-11
  • 语言: C/C++
  • 标签: DICOM  MFC  

资源简介

在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个文件信息

评论

共有 条评论