Mercurial > hg > orthanc
comparison OrthancServer/FromDcmtkBridge.cpp @ 863:3c0d0836f704 jpeg
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 10 Jun 2014 17:20:33 +0200 |
parents | a546b05a43da |
children | 2c545bb20dd3 |
comparison
equal
deleted
inserted
replaced
862:5a125d587810 | 863:3c0d0836f704 |
---|---|
525 DcmDataset& dataset, | 525 DcmDataset& dataset, |
526 unsigned int frame, | 526 unsigned int frame, |
527 ImageExtractionMode mode) | 527 ImageExtractionMode mode) |
528 { | 528 { |
529 // TODO CONTINUE THIS | 529 // TODO CONTINUE THIS |
530 if (mode == ImageExtractionMode_UInt8) | 530 |
531 { | 531 ImageBuffer tmp; |
532 printf(">>>>>>>>\n"); | 532 bool ok = false; |
533 ImageBuffer tmp; | 533 |
534 if (DicomImageDecoder::Decode(tmp, dataset, frame, PixelFormat_Grayscale8, DicomImageDecoder::Mode_Truncate)) | 534 switch (mode) |
535 { | 535 { |
536 ImageAccessor accessor(tmp.GetAccessor()); | 536 case ImageExtractionMode_UInt8: |
537 PngWriter writer; | 537 ok = DicomImageDecoder::DecodeAndTruncate(tmp, dataset, frame, PixelFormat_Grayscale8); |
538 writer.WriteToMemory(result, accessor); | 538 break; |
539 printf("<<<<<<<< OK\n"); | 539 |
540 return; | 540 case ImageExtractionMode_UInt16: |
541 } | 541 ok = DicomImageDecoder::DecodeAndTruncate(tmp, dataset, frame, PixelFormat_Grayscale16); |
542 printf("<<<<<<<< FAILURE\n"); | 542 break; |
543 } | 543 |
544 case ImageExtractionMode_Int16: | |
545 ok = DicomImageDecoder::DecodeAndTruncate(tmp, dataset, frame, PixelFormat_SignedGrayscale16); | |
546 break; | |
547 | |
548 case ImageExtractionMode_Preview: | |
549 ok = DicomImageDecoder::DecodePreview(tmp, dataset, frame); | |
550 break; | |
551 | |
552 default: | |
553 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
554 } | |
555 | |
556 if (ok) | |
557 { | |
558 ImageAccessor accessor(tmp.GetAccessor()); | |
559 PngWriter writer; | |
560 writer.WriteToMemory(result, accessor); | |
561 return; | |
562 } | |
563 else | |
564 { | |
565 throw OrthancException(ErrorCode_BadFileFormat); | |
566 } | |
567 | |
544 | 568 |
545 // See also: http://support.dcmtk.org/wiki/dcmtk/howto/accessing-compressed-data | 569 // See also: http://support.dcmtk.org/wiki/dcmtk/howto/accessing-compressed-data |
546 | 570 |
547 std::auto_ptr<DicomIntegerPixelAccessor> accessor; | 571 std::auto_ptr<DicomIntegerPixelAccessor> accessor; |
548 | 572 |