Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
2687:2c684841da15 | 2699:52217dc47a4e |
---|---|
362 { | 362 { |
363 format_ = "image/png"; | 363 format_ = "image/png"; |
364 DicomImageDecoder::ExtractPngImage(answer_, image_, mode_, invert_); | 364 DicomImageDecoder::ExtractPngImage(answer_, image_, mode_, invert_); |
365 } | 365 } |
366 | 366 |
367 void EncodeUsingPam() | |
368 { | |
369 format_ = "image/pam"; | |
370 DicomImageDecoder::ExtractPamImage(answer_, image_, mode_, invert_); | |
371 } | |
372 | |
367 void EncodeUsingJpeg(uint8_t quality) | 373 void EncodeUsingJpeg(uint8_t quality) |
368 { | 374 { |
369 format_ = "image/jpeg"; | 375 format_ = "image/jpeg"; |
370 DicomImageDecoder::ExtractJpegImage(answer_, image_, mode_, invert_, quality); | 376 DicomImageDecoder::ExtractJpegImage(answer_, image_, mode_, invert_, quality); |
371 } | 377 } |
385 const std::string& subtype) | 391 const std::string& subtype) |
386 { | 392 { |
387 assert(type == "image"); | 393 assert(type == "image"); |
388 assert(subtype == "png"); | 394 assert(subtype == "png"); |
389 image_.EncodeUsingPng(); | 395 image_.EncodeUsingPng(); |
396 } | |
397 }; | |
398 | |
399 class EncodePam : public HttpContentNegociation::IHandler | |
400 { | |
401 private: | |
402 ImageToEncode& image_; | |
403 | |
404 public: | |
405 EncodePam(ImageToEncode& image) : image_(image) | |
406 { | |
407 } | |
408 | |
409 virtual void Handle(const std::string& type, | |
410 const std::string& subtype) | |
411 { | |
412 assert(type == "image"); | |
413 assert(subtype == "pam"); | |
414 image_.EncodeUsingPam(); | |
390 } | 415 } |
391 }; | 416 }; |
392 | 417 |
393 class EncodeJpeg : public HttpContentNegociation::IHandler | 418 class EncodeJpeg : public HttpContentNegociation::IHandler |
394 { | 419 { |
524 ImageToEncode image(decoded, mode, invert); | 549 ImageToEncode image(decoded, mode, invert); |
525 | 550 |
526 HttpContentNegociation negociation; | 551 HttpContentNegociation negociation; |
527 EncodePng png(image); negociation.Register("image/png", png); | 552 EncodePng png(image); negociation.Register("image/png", png); |
528 EncodeJpeg jpeg(image, call); negociation.Register("image/jpeg", jpeg); | 553 EncodeJpeg jpeg(image, call); negociation.Register("image/jpeg", jpeg); |
554 EncodePam pam(image); negociation.Register("image/pam", pam); | |
529 | 555 |
530 if (negociation.Apply(call.GetHttpHeaders())) | 556 if (negociation.Apply(call.GetHttpHeaders())) |
531 { | 557 { |
532 image.Answer(call.GetOutput()); | 558 image.Answer(call.GetOutput()); |
533 } | 559 } |