Mercurial > hg > orthanc-stone
comparison Framework/Deprecated/Toolbox/OrthancSlicesLoader.cpp @ 739:be9c1530d40a
deprecating enum SliceImageQuality
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 22 May 2019 09:13:04 +0200 |
parents | c35e98d22764 |
children | 4fe4b221a31f |
comparison
equal
deleted
inserted
replaced
738:8e31b174ab26 | 739:be9c1530d40a |
---|---|
76 Mode mode_; | 76 Mode mode_; |
77 unsigned int frame_; | 77 unsigned int frame_; |
78 unsigned int sliceIndex_; | 78 unsigned int sliceIndex_; |
79 const Slice* slice_; | 79 const Slice* slice_; |
80 std::string instanceId_; | 80 std::string instanceId_; |
81 OrthancStone::SliceImageQuality quality_; | 81 SliceImageQuality quality_; |
82 | 82 |
83 Operation(Mode mode) : | 83 Operation(Mode mode) : |
84 mode_(mode) | 84 mode_(mode) |
85 { | 85 { |
86 } | 86 } |
89 Mode GetMode() const | 89 Mode GetMode() const |
90 { | 90 { |
91 return mode_; | 91 return mode_; |
92 } | 92 } |
93 | 93 |
94 OrthancStone::SliceImageQuality GetQuality() const | 94 SliceImageQuality GetQuality() const |
95 { | 95 { |
96 assert(mode_ == Mode_LoadImage || | 96 assert(mode_ == Mode_LoadImage || |
97 mode_ == Mode_LoadRawImage); | 97 mode_ == Mode_LoadRawImage); |
98 return quality_; | 98 return quality_; |
99 } | 99 } |
142 return operation.release(); | 142 return operation.release(); |
143 } | 143 } |
144 | 144 |
145 static Operation* DownloadSliceImage(unsigned int sliceIndex, | 145 static Operation* DownloadSliceImage(unsigned int sliceIndex, |
146 const Slice& slice, | 146 const Slice& slice, |
147 OrthancStone::SliceImageQuality quality) | 147 SliceImageQuality quality) |
148 { | 148 { |
149 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadImage)); | 149 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadImage)); |
150 tmp->sliceIndex_ = sliceIndex; | 150 tmp->sliceIndex_ = sliceIndex; |
151 tmp->slice_ = &slice; | 151 tmp->slice_ = &slice; |
152 tmp->quality_ = quality; | 152 tmp->quality_ = quality; |
157 const Slice& slice) | 157 const Slice& slice) |
158 { | 158 { |
159 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadRawImage)); | 159 std::auto_ptr<Operation> tmp(new Operation(Mode_LoadRawImage)); |
160 tmp->sliceIndex_ = sliceIndex; | 160 tmp->sliceIndex_ = sliceIndex; |
161 tmp->slice_ = &slice; | 161 tmp->slice_ = &slice; |
162 tmp->quality_ = OrthancStone::SliceImageQuality_InternalRaw; | 162 tmp->quality_ = SliceImageQuality_InternalRaw; |
163 return tmp.release(); | 163 return tmp.release(); |
164 } | 164 } |
165 | 165 |
166 static Operation* DownloadDicomFile(const Slice& slice) | 166 static Operation* DownloadDicomFile(const Slice& slice) |
167 { | 167 { |
776 (*this, &OrthancSlicesLoader::ParseSliceImagePng), | 776 (*this, &OrthancSlicesLoader::ParseSliceImagePng), |
777 new OrthancStone::Callable<OrthancSlicesLoader, | 777 new OrthancStone::Callable<OrthancSlicesLoader, |
778 IWebService::HttpRequestErrorMessage> | 778 IWebService::HttpRequestErrorMessage> |
779 (*this, &OrthancSlicesLoader::OnSliceImageError), | 779 (*this, &OrthancSlicesLoader::OnSliceImageError), |
780 Operation::DownloadSliceImage( | 780 Operation::DownloadSliceImage( |
781 static_cast<unsigned int>(index), slice, OrthancStone::SliceImageQuality_FullPng)); | 781 static_cast<unsigned int>(index), slice, SliceImageQuality_FullPng)); |
782 } | 782 } |
783 | 783 |
784 void OrthancSlicesLoader::ScheduleSliceImagePam(const Slice& slice, | 784 void OrthancSlicesLoader::ScheduleSliceImagePam(const Slice& slice, |
785 size_t index) | 785 size_t index) |
786 { | 786 { |
812 (*this, &OrthancSlicesLoader::ParseSliceImagePam), | 812 (*this, &OrthancSlicesLoader::ParseSliceImagePam), |
813 new OrthancStone::Callable<OrthancSlicesLoader, | 813 new OrthancStone::Callable<OrthancSlicesLoader, |
814 IWebService::HttpRequestErrorMessage> | 814 IWebService::HttpRequestErrorMessage> |
815 (*this, &OrthancSlicesLoader::OnSliceImageError), | 815 (*this, &OrthancSlicesLoader::OnSliceImageError), |
816 Operation::DownloadSliceImage(static_cast<unsigned int>(index), | 816 Operation::DownloadSliceImage(static_cast<unsigned int>(index), |
817 slice, OrthancStone::SliceImageQuality_FullPam)); | 817 slice, SliceImageQuality_FullPam)); |
818 } | 818 } |
819 | 819 |
820 | 820 |
821 | 821 |
822 void OrthancSlicesLoader::ScheduleSliceImageJpeg(const Slice& slice, | 822 void OrthancSlicesLoader::ScheduleSliceImageJpeg(const Slice& slice, |
823 size_t index, | 823 size_t index, |
824 OrthancStone::SliceImageQuality quality) | 824 SliceImageQuality quality) |
825 { | 825 { |
826 unsigned int value; | 826 unsigned int value; |
827 | 827 |
828 switch (quality) | 828 switch (quality) |
829 { | 829 { |
830 case OrthancStone::SliceImageQuality_Jpeg50: | 830 case SliceImageQuality_Jpeg50: |
831 value = 50; | 831 value = 50; |
832 break; | 832 break; |
833 | 833 |
834 case OrthancStone::SliceImageQuality_Jpeg90: | 834 case SliceImageQuality_Jpeg90: |
835 value = 90; | 835 value = 90; |
836 break; | 836 break; |
837 | 837 |
838 case OrthancStone::SliceImageQuality_Jpeg95: | 838 case SliceImageQuality_Jpeg95: |
839 value = 95; | 839 value = 95; |
840 break; | 840 break; |
841 | 841 |
842 default: | 842 default: |
843 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | 843 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); |
861 } | 861 } |
862 | 862 |
863 | 863 |
864 | 864 |
865 void OrthancSlicesLoader::ScheduleLoadSliceImage(size_t index, | 865 void OrthancSlicesLoader::ScheduleLoadSliceImage(size_t index, |
866 OrthancStone::SliceImageQuality quality) | 866 SliceImageQuality quality) |
867 { | 867 { |
868 if (state_ != State_GeometryReady) | 868 if (state_ != State_GeometryReady) |
869 { | 869 { |
870 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 870 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
871 } | 871 } |
874 | 874 |
875 if (slice.HasOrthancDecoding()) | 875 if (slice.HasOrthancDecoding()) |
876 { | 876 { |
877 switch (quality) | 877 switch (quality) |
878 { | 878 { |
879 case OrthancStone::SliceImageQuality_FullPng: | 879 case SliceImageQuality_FullPng: |
880 ScheduleSliceImagePng(slice, index); | 880 ScheduleSliceImagePng(slice, index); |
881 break; | 881 break; |
882 case OrthancStone::SliceImageQuality_FullPam: | 882 case SliceImageQuality_FullPam: |
883 ScheduleSliceImagePam(slice, index); | 883 ScheduleSliceImagePam(slice, index); |
884 break; | 884 break; |
885 default: | 885 default: |
886 ScheduleSliceImageJpeg(slice, index, quality); | 886 ScheduleSliceImageJpeg(slice, index, quality); |
887 } | 887 } |