diff Core/DicomFormat/DicomIntegerPixelAccessor.cpp @ 465:7a966b440f19

signed images to PNG
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 12 Jul 2013 11:15:27 +0200
parents 5987dd8e0776
children 2890721b0f57
line wrap: on
line diff
--- a/Core/DicomFormat/DicomIntegerPixelAccessor.cpp	Fri Jul 12 10:37:31 2013 +0200
+++ b/Core/DicomFormat/DicomIntegerPixelAccessor.cpp	Fri Jul 12 11:15:27 2013 +0200
@@ -245,7 +245,8 @@
     if (v & signMask_)
     {
       // Signed value
-      return -static_cast<int32_t>(v & mask_);
+      // http://en.wikipedia.org/wiki/Two%27s_complement#Subtraction_from_2N
+      return -static_cast<int32_t>(mask_) + static_cast<int32_t>(v & mask_) - 1;
     }
     else
     {