⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dicombmpdlg.h

📁 将医学上Dicom格式的图像转换为BMP格式的图像。
💻 H
字号:
// DicomBMPDlg.h : header file
//
/*************************************************************************BOFH**
* COPYRIGHT (C) JB Wang 2003
********************************************************************************
*
* FILE NAME: DicomBMPDlg.h
*
* ONE LINE SUMMARY: DICOM File into BMP and BMP File to DICOM converter
*
*   
* DESCRIPTION: 
*
* NOTES: This program is released to www.cnpacs.org as a teaching material. 
*        Anybody can use it freely for any intended purposes.
*        The software is released as it is without warantee.
*
* REVISION HISTORY:
* Rev           When        Who         What
*               05/26/2003  JB Wang     Created
*
**************************************************************************EOFH*/

#if !defined(AFX_DICOMBMPDLG_H__67BF0B10_3BFD_48F0_AEDD_36805BE2F876__INCLUDED_)
#define AFX_DICOMBMPDLG_H__67BF0B10_3BFD_48F0_AEDD_36805BE2F876__INCLUDED_


#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

enum DATA_ENDIAN
{
	LITTLE_ENDIAN,
	BIG_ENDIAN
};


/////////////////////////////////////////////////////////////////////////////
// CDicomBMPDlg dialog

class CDicomBMPDlg : public CDialog
{
// Construction
public:
	CDicomBMPDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CDicomBMPDlg)
	enum { IDD = IDD_DICOMBMP_DIALOG };
	int		m_nConvertMode;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDicomBMPDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

public:
	// Reusable DICOM file reading methods. 
	// Purposefully made static, without dependency on member variables.
	static void removeTailingSpace(char *pszStr);
	static void SwapWord(char *pArray, int nWords);
	static void SwapDWord(char *pArray, int nDWords);

	static int readUS(FILE *fp, DATA_ENDIAN nDataEndian);
	static long int readLength(FILE *fp, BOOL bImplicitVR, DATA_ENDIAN nDataEndian);
	static int readIS(FILE *fp, BOOL bImplicitVR, DATA_ENDIAN nDataEndian);
	static int readString(FILE *fp, char *pszStr, BOOL bImplicitVR, DATA_ENDIAN nDataEndian);
	static float readDS(FILE *fp, BOOL bImplicitVR, DATA_ENDIAN nDataEndian);
	static char *convertTo8Bit(char *pData, long int nNumPixels, BOOL bSigned, short nHighBit, 
								  float fRescaleSlope, float fRescaleIntercept, 
								  float fWindowCenter, float fWindowWidth);


// Implementation
protected:
	HICON m_hIcon;

	int m_nFileFormat;
	CString m_strFileName;
	CString m_strFileDir;

	void ConvertDicomToBMP();
	void ConvertBmpToDicom();
	int	WriteBMPFile(char *pData, int nFrameSize, short nCols, short nRows, int nBytesP, char *pszPhotometric, int nFrameNum=0);


	// Generated message map functions
	//{{AFX_MSG(CDicomBMPDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnModeChanged();
	afx_msg void OnConvertFile();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DICOMBMPDLG_H__67BF0B10_3BFD_48F0_AEDD_36805BE2F876__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -