// SaveDlg.cpp : implementation file // #include "stdafx.h" #include "dicomapp.h" #include "SaveDlg.h" #include "J2KOptions.h" ///////////////////////////////////////////////////////////////////////////// // CDicomSaveDlg dialog CDicomSaveDlg::CDicomSaveDlg(CWnd* pParent /*=NULL*/) : CDialog(CDicomSaveDlg::IDD, pParent) { //{{AFX_DATA_INIT(CDicomSaveDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_pDS = NULL; } void CDicomSaveDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDicomSaveDlg) DDX_Control(pDX, IDC_J2KOPTIONS, m_btnJ2KOptions); DDX_Control(pDX, IDC_QFACTOR, m_QFactor); DDX_Control(pDX, IDC_METAHEADER_PRESENT, m_MetaheaderPresent); DDX_Control(pDX, IDC_METAHEADER_ABSENT, m_MetaheaderAbsent); DDX_Control(pDX, IDC_METAHEADER_DEFAULT, m_MetaheaderDefault); DDX_Control(pDX, IDC_TS_LITTLEENDIAN, m_TSLittleEndian); DDX_Control(pDX, IDC_TS_BIGENDIAN, m_TSBigEndian); DDX_Control(pDX, IDC_TS_DEFAULT, m_TSDefault); DDX_Control(pDX, IDC_VR_IMPLICIT, m_VRImplicit); DDX_Control(pDX, IDC_VR_EXPLICIT, m_VRExplicit); DDX_Control(pDX, IDC_VR_DEFAULT, m_VRDefault); DDX_Control(pDX, IDC_GROUP_PRESENT, m_GroupPresent); DDX_Control(pDX, IDC_GROUP_ABSENT, m_GroupAbsent); DDX_Control(pDX, IDC_LENGTH_UNDEFINED, m_LengthUndefined); DDX_Control(pDX, IDC_LENGTH_EXPLICIT, m_LengthExplicit); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_NONE, m_ImageCompressionNone); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_RLE, m_ImageCompressionRLE); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_JPEG_LOSSLESS, m_ImageCompressionJPEGLossless); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_JPEG_LOSSY, m_ImageCompressionJPEGLossy); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_JPEG2000_LOSSLESS, m_ImageCompressionJPEG2000Lossless); DDX_Control(pDX, IDC_IMAGE_COMPRESSION_JPEG2000_LOSSY, m_ImageCompressionJPEG2000Lossy); DDX_Control(pDX, IDC_IMAGE_PHOTOMETRIC_MONOCHROME2, m_ImagePhotometricMonochrome2); DDX_Control(pDX, IDC_IMAGE_PHOTOMETRIC_PALLETE, m_ImagePhotometricPalette); DDX_Control(pDX, IDC_IMAGE_PHOTOMETRIC_RGB, m_ImagePhotometricRGB); DDX_Control(pDX, IDC_IMAGE_BITSPERPIXEL_8, m_ImageBitsperpixel8); DDX_Control(pDX, IDC_IMAGE_BITSPERPIXEL_16, m_ImageBitsperpixel16); DDX_Control(pDX, IDC_IMAGE_BITSPERPIXEL_24, m_ImageBitsperpixel24); DDX_Control(pDX, IDC_IMAGE_BITSPERPIXEL_12, m_ImageBitsperpixel12); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDicomSaveDlg, CDialog) //{{AFX_MSG_MAP(CDicomSaveDlg) ON_BN_CLICKED(IDC_GROUP_ABSENT, OnGroupAbsent) ON_BN_CLICKED(IDC_GROUP_PRESENT, OnGroupPresent) ON_BN_CLICKED(IDC_LENGTH_EXPLICIT, OnLengthExplicit) ON_BN_CLICKED(IDC_LENGTH_UNDEFINED, OnLengthUndefined) ON_BN_CLICKED(IDC_METAHEADER_ABSENT, OnMetaheaderAbsent) ON_BN_CLICKED(IDC_METAHEADER_DEFAULT, OnMetaheaderDefault) ON_BN_CLICKED(IDC_METAHEADER_PRESENT, OnMetaheaderPresent) ON_BN_CLICKED(IDC_TS_BIGENDIAN, OnTsBigendian) ON_BN_CLICKED(IDC_TS_DEFAULT, OnTsDefault) ON_BN_CLICKED(IDC_TS_LITTLEENDIAN, OnTsLittleendian) ON_BN_CLICKED(IDC_VR_DEFAULT, OnVrDefault) ON_BN_CLICKED(IDC_VR_EXPLICIT, OnVrExplicit) ON_BN_CLICKED(IDC_VR_IMPLICIT, OnVrImplicit) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_NONE, OnImageCompressionNone) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_RLE, OnImageCompressionRLE) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_JPEG_LOSSLESS, OnImageCompressionJPEGLossless) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_JPEG_LOSSY, OnImageCompressionJPEGLossy) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_JPEG2000_LOSSLESS, OnImageCompressionJPEG2000Lossless) ON_BN_CLICKED(IDC_IMAGE_COMPRESSION_JPEG2000_LOSSY, OnImageCompressionJPEG2000Lossy) ON_BN_CLICKED(IDC_IMAGE_PHOTOMETRIC_MONOCHROME2, OnImagePhotometricMonochrome2) ON_BN_CLICKED(IDC_IMAGE_PHOTOMETRIC_PALLETE, OnImagePhotometricPalette) ON_BN_CLICKED(IDC_IMAGE_PHOTOMETRIC_RGB, OnImagePhotometricRGB) ON_BN_CLICKED(IDC_IMAGE_BITSPERPIXEL_8, OnImageBitsperpixel8) ON_BN_CLICKED(IDC_IMAGE_BITSPERPIXEL_16, OnImageBitsperpixel16) ON_BN_CLICKED(IDC_IMAGE_BITSPERPIXEL_24, OnImageBitsperpixel24) ON_BN_CLICKED(IDC_IMAGE_BITSPERPIXEL_12, OnImageBitsperpixel12) ON_BN_CLICKED(IDC_J2KOPTIONS, OnJ2koptions) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDicomSaveDlg message handlers BOOL CDicomSaveDlg::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon if (m_nFlags & DS_METAHEADER_PRESENT) { m_MetaheaderPresent.SetCheck(1); } else if (m_nFlags & DS_METAHEADER_ABSENT) { m_MetaheaderAbsent.SetCheck(1); } else { m_MetaheaderDefault.SetCheck(1); } if (m_nFlags & DS_LITTLE_ENDIAN) { m_TSLittleEndian.SetCheck(1); } else if (m_nFlags & DS_BIG_ENDIAN) { m_TSBigEndian.SetCheck(1); m_VRImplicit.EnableWindow(FALSE); m_ImageCompressionRLE.EnableWindow(FALSE); m_ImageCompressionJPEGLossless.EnableWindow(FALSE); m_ImageCompressionJPEGLossy.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossless.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossy.EnableWindow(FALSE); } else { m_TSDefault.SetCheck(1); } if (m_nFlags & DS_EXPLICIT_VR) { m_VRExplicit.SetCheck(1); } else if (m_nFlags & DS_IMPLICIT_VR) { m_VRImplicit.SetCheck(1); m_TSBigEndian.EnableWindow(FALSE); m_ImageCompressionRLE.EnableWindow(FALSE); m_ImageCompressionJPEGLossless.EnableWindow(FALSE); m_ImageCompressionJPEGLossy.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossless.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossy.EnableWindow(FALSE); } else { m_VRDefault.SetCheck(1); } if (m_nFlags & DS_GROUP_LENGTHS) { m_GroupPresent.SetCheck(1); } else { m_GroupAbsent.SetCheck(1); } if (m_nFlags & DS_LENGTH_EXPLICIT) { m_LengthExplicit.SetCheck(1); } else { m_LengthUndefined.SetCheck(1); } switch (m_nCompression) { case IMAGE_COMPRESSION_NONE: m_ImageCompressionNone.SetCheck(1); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); break; case IMAGE_COMPRESSION_RLE: m_ImageCompressionRLE.SetCheck(1); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); break; case IMAGE_COMPRESSION_JPEG_LOSSLESS: m_ImageCompressionJPEGLossless.SetCheck(1); m_ImagePhotometricPalette.EnableWindow(FALSE); //m_ImageBitsperpixel8.EnableWindow(FALSE); //m_ImageBitsperpixel12.EnableWindow(FALSE); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); break; case IMAGE_COMPRESSION_J2K_LOSSLESS: m_ImageCompressionJPEG2000Lossless.SetCheck(1); m_ImagePhotometricPalette.EnableWindow(FALSE); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(TRUE); break; case IMAGE_COMPRESSION_JPEG_LOSSY: m_ImageCompressionJPEGLossy.SetCheck(1); m_ImagePhotometricPalette.EnableWindow(FALSE); m_ImageBitsperpixel16.EnableWindow(FALSE); m_QFactor.EnableWindow(TRUE); m_btnJ2KOptions.EnableWindow(FALSE); break; case IMAGE_COMPRESSION_J2K_LOSSY: m_ImageCompressionJPEG2000Lossy.SetCheck(1); m_ImagePhotometricPalette.EnableWindow(FALSE); m_ImageBitsperpixel16.EnableWindow(TRUE); m_QFactor.EnableWindow(TRUE); m_btnJ2KOptions.EnableWindow(TRUE); break; } switch (m_nPhotometric) { case IMAGE_PHOTOMETRIC_MONOCHROME2: m_ImagePhotometricMonochrome2.SetCheck(1); m_ImageBitsperpixel24.EnableWindow(FALSE); break; case IMAGE_PHOTOMETRIC_PALETTE_COLOR: m_ImagePhotometricPalette.SetCheck(1); m_ImageBitsperpixel16.EnableWindow(FALSE); m_ImageBitsperpixel24.EnableWindow(FALSE); break; case IMAGE_PHOTOMETRIC_RGB: m_ImagePhotometricRGB.SetCheck(1); m_ImageBitsperpixel8.EnableWindow(FALSE); m_ImageBitsperpixel12.EnableWindow(FALSE); m_ImageBitsperpixel16.EnableWindow(FALSE); break; } switch (m_nBitsPerPixel) { case 8: m_ImageBitsperpixel8.SetCheck(1); break; case 12: m_ImageBitsperpixel12.SetCheck(1); case 16: m_ImageBitsperpixel16.SetCheck(1); break; case 24: m_ImageBitsperpixel24.SetCheck(1); break; } SetDlgItemInt(IDC_QFACTOR, m_nQFactor, FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDicomSaveDlg::OnOK() { m_nFlags = 0; if (m_MetaheaderPresent.GetCheck() == 1) { m_nFlags |= DS_METAHEADER_PRESENT; } else if (m_MetaheaderAbsent.GetCheck() == 1) { m_nFlags |= DS_METAHEADER_ABSENT; } if (m_TSBigEndian.GetCheck() == 1) { m_nFlags |= DS_BIG_ENDIAN; } else if (m_TSLittleEndian.GetCheck() == 1) { m_nFlags |= DS_LITTLE_ENDIAN; } if (m_VRImplicit.GetCheck() == 1) { m_nFlags |= DS_IMPLICIT_VR; } else if (m_VRExplicit.GetCheck() == 1) { m_nFlags |= DS_EXPLICIT_VR; } if (m_GroupPresent.GetCheck() == 1) { m_nFlags |= DS_GROUP_LENGTHS; } if (m_LengthExplicit.GetCheck() == 1) { m_nFlags |= DS_LENGTH_EXPLICIT; } if (m_ImageCompressionNone.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_NONE; } else if (m_ImageCompressionRLE.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_RLE; } else if (m_ImageCompressionJPEGLossless.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_JPEG_LOSSLESS; } else if (m_ImageCompressionJPEGLossy.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_JPEG_LOSSY; } else if (m_ImageCompressionJPEG2000Lossless.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_J2K_LOSSLESS; } else if (m_ImageCompressionJPEG2000Lossy.GetCheck() == 1) { m_nCompression = IMAGE_COMPRESSION_J2K_LOSSY; } if (m_ImagePhotometricMonochrome2.GetCheck() == 1) { m_nPhotometric = IMAGE_PHOTOMETRIC_MONOCHROME2; } else if (m_ImagePhotometricPalette.GetCheck() == 1) { m_nPhotometric = IMAGE_PHOTOMETRIC_PALETTE_COLOR; } else if (m_ImagePhotometricRGB.GetCheck() == 1) { m_nPhotometric = IMAGE_PHOTOMETRIC_RGB; } if (m_ImageBitsperpixel8.GetCheck() == 1) { m_nBitsPerPixel = 8; } else if (m_ImageBitsperpixel12.GetCheck() == 1) { m_nBitsPerPixel = 12; } else if (m_ImageBitsperpixel16.GetCheck() == 1) { m_nBitsPerPixel = 16; } else if (m_ImageBitsperpixel24.GetCheck() == 1) { m_nBitsPerPixel = 24; } m_nQFactor = GetDlgItemInt(IDC_QFACTOR, FALSE); CDialog::OnOK(); } void CDicomSaveDlg::OnGroupAbsent() { m_GroupPresent.SetCheck(0); m_GroupAbsent.SetCheck(1); } void CDicomSaveDlg::OnGroupPresent() { m_GroupPresent.SetCheck(1); m_GroupAbsent.SetCheck(0); } void CDicomSaveDlg::OnLengthExplicit() { m_LengthExplicit.SetCheck(1); m_LengthUndefined.SetCheck(0); } void CDicomSaveDlg::OnLengthUndefined() { m_LengthExplicit.SetCheck(0); m_LengthUndefined.SetCheck(1); } void CDicomSaveDlg::OnMetaheaderAbsent() { m_MetaheaderPresent.SetCheck(0); m_MetaheaderAbsent.SetCheck(1); m_MetaheaderDefault.SetCheck(0); } void CDicomSaveDlg::OnMetaheaderDefault() { m_MetaheaderPresent.SetCheck(0); m_MetaheaderAbsent.SetCheck(0); m_MetaheaderDefault.SetCheck(1); } void CDicomSaveDlg::OnMetaheaderPresent() { m_MetaheaderPresent.SetCheck(1); m_MetaheaderAbsent.SetCheck(0); m_MetaheaderDefault.SetCheck(0); } void CDicomSaveDlg::OnTsLittleendian() { m_TSBigEndian.SetCheck(0); m_TSLittleEndian.SetCheck(1); m_TSDefault.SetCheck(0); m_VRImplicit.EnableWindow(TRUE); m_TSBigEndian.EnableWindow(TRUE); if (m_VRImplicit.GetCheck() == 0) { m_ImageCompressionRLE.EnableWindow(TRUE); m_ImageCompressionJPEGLossless.EnableWindow(TRUE); m_ImageCompressionJPEGLossy.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossless.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossy.EnableWindow(TRUE); } } void CDicomSaveDlg::OnTsBigendian() { m_TSBigEndian.SetCheck(1); m_TSLittleEndian.SetCheck(0); m_TSDefault.SetCheck(0); m_VRImplicit.EnableWindow(FALSE); OnImageCompressionNone(); m_ImageCompressionRLE.EnableWindow(FALSE); m_ImageCompressionJPEGLossless.EnableWindow(FALSE); m_ImageCompressionJPEGLossy.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossless.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossy.EnableWindow(FALSE); } void CDicomSaveDlg::OnTsDefault() { m_TSBigEndian.SetCheck(0); m_TSLittleEndian.SetCheck(0); m_TSDefault.SetCheck(1); m_VRImplicit.EnableWindow(TRUE); m_TSBigEndian.EnableWindow(TRUE); if (m_VRImplicit.GetCheck() == 0) { m_ImageCompressionRLE.EnableWindow(TRUE); m_ImageCompressionJPEGLossless.EnableWindow(TRUE); m_ImageCompressionJPEGLossy.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossless.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossy.EnableWindow(TRUE); } } void CDicomSaveDlg::OnVrExplicit() { m_VRExplicit.SetCheck(1); m_VRImplicit.SetCheck(0); m_VRDefault.SetCheck(0); m_VRImplicit.EnableWindow(TRUE); m_TSBigEndian.EnableWindow(TRUE); if (m_TSBigEndian.GetCheck() == 0) { m_ImageCompressionRLE.EnableWindow(TRUE); m_ImageCompressionJPEGLossless.EnableWindow(TRUE); m_ImageCompressionJPEGLossy.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossless.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossy.EnableWindow(TRUE); } } void CDicomSaveDlg::OnVrImplicit() { m_VRExplicit.SetCheck(0); m_VRImplicit.SetCheck(1); m_VRDefault.SetCheck(0); m_TSBigEndian.EnableWindow(FALSE); OnImageCompressionNone(); m_ImageCompressionRLE.EnableWindow(FALSE); m_ImageCompressionJPEGLossless.EnableWindow(FALSE); m_ImageCompressionJPEGLossy.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossless.EnableWindow(FALSE); m_ImageCompressionJPEG2000Lossy.EnableWindow(FALSE); } void CDicomSaveDlg::OnVrDefault() { m_VRExplicit.SetCheck(0); m_VRImplicit.SetCheck(0); m_VRDefault.SetCheck(1); m_VRImplicit.EnableWindow(TRUE); m_TSBigEndian.EnableWindow(TRUE); if (m_TSBigEndian.GetCheck() == 0) { m_ImageCompressionRLE.EnableWindow(TRUE); m_ImageCompressionJPEGLossless.EnableWindow(TRUE); m_ImageCompressionJPEGLossy.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossless.EnableWindow(TRUE); m_ImageCompressionJPEG2000Lossy.EnableWindow(TRUE); } } void CDicomSaveDlg::OnImageCompressionNone() { m_ImageCompressionNone.SetCheck(1); m_ImageCompressionRLE.SetCheck(0); m_ImageCompressionJPEGLossless.SetCheck(0); m_ImageCompressionJPEGLossy.SetCheck(0); m_ImageCompressionJPEG2000Lossless.SetCheck(0); m_ImageCompressionJPEG2000Lossy.SetCheck(0); m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); if (m_ImagePhotometricMonochrome2.GetCheck() != 0) { m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); m_ImageBitsperpixel16.EnableWindow(TRUE); } } void CDicomSaveDlg::OnImageCompressionRLE() { m_ImageCompressionNone.SetCheck(0); m_ImageCompressionRLE.SetCheck(1); m_ImageCompressionJPEGLossless.SetCheck(0); m_ImageCompressionJPEGLossy.SetCheck(0); m_ImageCompressionJPEG2000Lossless.SetCheck(0); m_ImageCompressionJPEG2000Lossy.SetCheck(0); m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); if (m_ImagePhotometricMonochrome2.GetCheck() != 0) { m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); m_ImageBitsperpixel16.EnableWindow(TRUE); } } void CDicomSaveDlg::OnImageCompressionJPEGLossless() { m_ImageCompressionNone.SetCheck(0); m_ImageCompressionRLE.SetCheck(0); m_ImageCompressionJPEGLossless.SetCheck(1); m_ImageCompressionJPEGLossy.SetCheck(0); m_ImageCompressionJPEG2000Lossless.SetCheck(0); m_ImageCompressionJPEG2000Lossy.SetCheck(0); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(FALSE); if (m_ImagePhotometricPalette.GetCheck() != 0) { OnImagePhotometricRGB(); } if (m_ImageBitsperpixel8.GetCheck() != 0) { OnImageBitsperpixel16(); m_ImageBitsperpixel16.EnableWindow(TRUE); } m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(FALSE); //m_ImageBitsperpixel8.EnableWindow(FALSE); } void CDicomSaveDlg::OnImageCompressionJPEGLossy() { m_ImageCompressionNone.SetCheck(0); m_ImageCompressionRLE.SetCheck(0); m_ImageCompressionJPEGLossless.SetCheck(0); m_ImageCompressionJPEGLossy.SetCheck(1); m_ImageCompressionJPEG2000Lossless.SetCheck(0); m_ImageCompressionJPEG2000Lossy.SetCheck(0); m_QFactor.EnableWindow(TRUE); m_btnJ2KOptions.EnableWindow(FALSE); if (m_ImagePhotometricPalette.GetCheck() != 0) { OnImagePhotometricRGB(); } if (m_ImageBitsperpixel16.GetCheck() != 0) { OnImageBitsperpixel8(); m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); } m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(FALSE); m_ImageBitsperpixel16.EnableWindow(FALSE); } void CDicomSaveDlg::OnImageCompressionJPEG2000Lossless() { m_ImageCompressionNone.SetCheck(0); m_ImageCompressionRLE.SetCheck(0); m_ImageCompressionJPEGLossless.SetCheck(0); m_ImageCompressionJPEGLossy.SetCheck(0); m_ImageCompressionJPEG2000Lossless.SetCheck(1); m_ImageCompressionJPEG2000Lossy.SetCheck(0); m_QFactor.EnableWindow(FALSE); m_btnJ2KOptions.EnableWindow(TRUE); if (m_ImagePhotometricPalette.GetCheck() != 0) { OnImagePhotometricRGB(); } if (m_ImageBitsperpixel8.GetCheck() != 0) { OnImageBitsperpixel16(); m_ImageBitsperpixel16.EnableWindow(TRUE); } m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(FALSE); //m_ImageBitsperpixel8.EnableWindow(FALSE); } void CDicomSaveDlg::OnImageCompressionJPEG2000Lossy() { m_ImageCompressionNone.SetCheck(0); m_ImageCompressionRLE.SetCheck(0); m_ImageCompressionJPEG2000Lossless.SetCheck(0); m_ImageCompressionJPEG2000Lossy.SetCheck(1); m_ImageCompressionJPEGLossless.SetCheck(0); m_ImageCompressionJPEGLossy.SetCheck(0); m_QFactor.EnableWindow(TRUE); m_btnJ2KOptions.EnableWindow(TRUE); if (m_ImagePhotometricPalette.GetCheck() != 0) { OnImagePhotometricRGB(); } if (m_ImageBitsperpixel16.GetCheck() != 0) { OnImageBitsperpixel8(); m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); } m_ImagePhotometricMonochrome2.EnableWindow(TRUE); m_ImagePhotometricRGB.EnableWindow(TRUE); m_ImagePhotometricPalette.EnableWindow(FALSE); if (m_ImagePhotometricMonochrome2.GetCheck() != 0) { m_ImageBitsperpixel16.EnableWindow(TRUE); } else { m_ImageBitsperpixel16.EnableWindow(FALSE); } } void CDicomSaveDlg::OnImagePhotometricMonochrome2() { m_ImagePhotometricMonochrome2.SetCheck(1); m_ImagePhotometricPalette.SetCheck(0); m_ImagePhotometricRGB.SetCheck(0); if (m_ImageBitsperpixel24.GetCheck() != 0) { if ( (m_ImageCompressionJPEGLossless.GetCheck() != 0)|| (m_ImageCompressionJPEG2000Lossless.GetCheck() != 0)) { OnImageBitsperpixel16(); } else if ( (m_ImageCompressionJPEGLossy.GetCheck() != 0)|| (m_ImageCompressionJPEG2000Lossy.GetCheck() != 0)) { OnImageBitsperpixel8(); } else { OnImageBitsperpixel16(); } } if ( (m_ImageCompressionJPEGLossless.GetCheck() != 0)|| (m_ImageCompressionJPEG2000Lossless.GetCheck() != 0)|| (m_ImageCompressionJPEG2000Lossy.GetCheck() != 0)) { m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); m_ImageBitsperpixel16.EnableWindow(TRUE); } else if ( (m_ImageCompressionJPEGLossy.GetCheck() != 0)) { m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); m_ImageBitsperpixel16.EnableWindow(FALSE); } else { m_ImageBitsperpixel8.EnableWindow(TRUE); m_ImageBitsperpixel12.EnableWindow(TRUE); m_ImageBitsperpixel16.EnableWindow(TRUE); } m_ImageBitsperpixel24.EnableWindow(FALSE); } void CDicomSaveDlg::OnImagePhotometricPalette() { m_ImagePhotometricMonochrome2.SetCheck(0); m_ImagePhotometricPalette.SetCheck(1); m_ImagePhotometricRGB.SetCheck(0); if (m_ImageBitsperpixel8.GetCheck() == 0) { OnImageBitsperpixel8(); m_ImageBitsperpixel8.EnableWindow(TRUE); } if (m_ImageBitsperpixel12.GetCheck() == 0) { OnImageBitsperpixel12(); m_ImageBitsperpixel12.EnableWindow(TRUE); } m_ImageBitsperpixel16.EnableWindow(FALSE); m_ImageBitsperpixel24.EnableWindow(FALSE); } void CDicomSaveDlg::OnImagePhotometricRGB() { m_ImagePhotometricMonochrome2.SetCheck(0); m_ImagePhotometricPalette.SetCheck(0); m_ImagePhotometricRGB.SetCheck(1); if (m_ImageBitsperpixel24.GetCheck() == 0) { OnImageBitsperpixel24(); m_ImageBitsperpixel24.EnableWindow(TRUE); } m_ImageBitsperpixel8.EnableWindow(FALSE); m_ImageBitsperpixel12.EnableWindow(FALSE); m_ImageBitsperpixel16.EnableWindow(FALSE); } void CDicomSaveDlg::OnImageBitsperpixel8() { m_ImageBitsperpixel8.SetCheck(1); m_ImageBitsperpixel16.SetCheck(0); m_ImageBitsperpixel24.SetCheck(0); m_ImageBitsperpixel12.SetCheck(0); } void CDicomSaveDlg::OnImageBitsperpixel16() { m_ImageBitsperpixel8.SetCheck(0); m_ImageBitsperpixel16.SetCheck(1); m_ImageBitsperpixel24.SetCheck(0); m_ImageBitsperpixel12.SetCheck(0); } void CDicomSaveDlg::OnImageBitsperpixel24() { m_ImageBitsperpixel8.SetCheck(0); m_ImageBitsperpixel16.SetCheck(0); m_ImageBitsperpixel24.SetCheck(1); m_ImageBitsperpixel12.SetCheck(0); } void CDicomSaveDlg::OnImageBitsperpixel12() { m_ImageBitsperpixel8.SetCheck(0); m_ImageBitsperpixel16.SetCheck(0); m_ImageBitsperpixel24.SetCheck(0); m_ImageBitsperpixel12.SetCheck(1); } void CDicomSaveDlg::OnJ2koptions() { if(m_pDS) { CJ2KOptions J2KOptionsDlg; J2KOptionsDlg.m_pDS = m_pDS; J2KOptionsDlg.m_nQFactor = GetDlgItemInt(IDC_QFACTOR, FALSE); if (m_ImageCompressionJPEG2000Lossless.GetCheck() == 1) { J2KOptionsDlg.m_bLossless = TRUE; } J2KOptionsDlg.DoModal () ; } }