DicomImageJPEG.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /***************************************************************************
  2. * E-Com Technology Ltd.
  3. *
  4. * ECOMPACS DICOM Network Transport Libraries * Version 0.1 Beta
  5. ***************************************************************************/
  6. #ifndef __DICOMImageJPEG__
  7. #define __DICOMImageJPEG__
  8. //-----------------------------------------------------------------------------
  9. // class DICOMImageJPEG
  10. //-----------------------------------------------------------------------------
  11. class DICOMImageJPEG
  12. {
  13. public:
  14. DICOMImageJPEG ()
  15. {
  16. Init ();
  17. }
  18. void Init (void)
  19. {
  20. m_JPEGQuality = 75;
  21. m_WindowCenter = -1;
  22. m_WindowWidth = -1;
  23. m_NewRows = -1;
  24. m_NewCols = -1;
  25. m_OrgRows = -1;
  26. m_OrgCols = -1;
  27. }
  28. ~DICOMImageJPEG ()
  29. {
  30. Release ();
  31. }
  32. void Release (void)
  33. {
  34. m_Buffer.Reset ();
  35. }
  36. BOOL WriteFile (const char * FileName) const;
  37. BOOL IsValid (void) const { return (m_Buffer.GetSize () != 0); }
  38. BOOL ConvertImage (DICOMImage * Image);
  39. // 读文件,并且设置原来的窗宽/窗位
  40. BOOL ReadFile (const char * FileName);
  41. // 判断是否应当重新创建JPEG文件,FileName是已知的文件名
  42. // 返回true时,表明应当重新创建JPEG,返回false时,表明无需重新创建JPEG
  43. bool ShouldICreateJPEG (
  44. const char * FileName,
  45. int JPEGQuality,
  46. int WindowCenter, int WindowWidth,
  47. int NewRows, int NewCols);
  48. int GetJPEGLength () const;
  49. public:
  50. BOOL ScaleImage (DICOMImage * Image);
  51. public:
  52. INT16 m_JPEGQuality;
  53. int m_WindowCenter;
  54. int m_WindowWidth;
  55. INT16 m_NewRows;
  56. INT16 m_NewCols;
  57. INT16 m_OrgRows;
  58. INT16 m_OrgCols;
  59. protected:
  60. IStreamBuffer m_Buffer;
  61. };
  62. #endif