Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 2699:52217dc47a4e
new image/pam MIME TYPE supported in /instances/../frames/../image-uint8... routes
author | am@osimis.io |
---|---|
date | Thu, 05 Jul 2018 12:25:00 +0200 |
parents | 3603a2e14592 |
children | b71c59312bae |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Thu Jun 28 12:24:45 2018 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Thu Jul 05 12:25:00 2018 +0200 @@ -364,6 +364,12 @@ DicomImageDecoder::ExtractPngImage(answer_, image_, mode_, invert_); } + void EncodeUsingPam() + { + format_ = "image/pam"; + DicomImageDecoder::ExtractPamImage(answer_, image_, mode_, invert_); + } + void EncodeUsingJpeg(uint8_t quality) { format_ = "image/jpeg"; @@ -390,6 +396,25 @@ } }; + class EncodePam : public HttpContentNegociation::IHandler + { + private: + ImageToEncode& image_; + + public: + EncodePam(ImageToEncode& image) : image_(image) + { + } + + virtual void Handle(const std::string& type, + const std::string& subtype) + { + assert(type == "image"); + assert(subtype == "pam"); + image_.EncodeUsingPam(); + } + }; + class EncodeJpeg : public HttpContentNegociation::IHandler { private: @@ -526,6 +551,7 @@ HttpContentNegociation negociation; EncodePng png(image); negociation.Register("image/png", png); EncodeJpeg jpeg(image, call); negociation.Register("image/jpeg", jpeg); + EncodePam pam(image); negociation.Register("image/pam", pam); if (negociation.Apply(call.GetHttpHeaders())) {