diff PalanthirServer/FromDcmtkBridge.cpp @ 53:293038baf8f1

access to multi-frame images
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 10 Sep 2012 15:17:02 +0200
parents a15e90e5d6fc
children
line wrap: on
line diff
--- a/PalanthirServer/FromDcmtkBridge.cpp	Fri Sep 07 12:53:38 2012 +0200
+++ b/PalanthirServer/FromDcmtkBridge.cpp	Mon Sep 10 15:17:02 2012 +0200
@@ -438,6 +438,7 @@
 
   void FromDcmtkBridge::ExtractPngImage(std::string& result,
                                         DcmDataset& dataset,
+                                        unsigned int frame,
                                         ImageExtractionMode mode)
   {
     // See also: http://support.dcmtk.org/wiki/dcmtk/howto/accessing-compressed-data
@@ -455,6 +456,7 @@
       if (e->getUint8Array(pixData) == EC_Normal)
       {    
         accessor.reset(new DicomIntegerPixelAccessor(m, pixData, e->getLength()));
+        accessor->SetCurrentFrame(frame);
       }
     }
 
@@ -506,6 +508,7 @@
 
   void FromDcmtkBridge::ExtractPngImage(std::string& result,
                                         const std::string& dicomContent,
+                                        unsigned int frame,
                                         ImageExtractionMode mode)
   {
     DcmInputBufferStream is;
@@ -518,7 +521,7 @@
     DcmFileFormat dicom;
     if (dicom.read(is).good())
     {
-      ExtractPngImage(result, *dicom.getDataset(), mode);
+      ExtractPngImage(result, *dicom.getDataset(), frame, mode);
     }
     else
     {