diff Core/PngWriter.cpp @ 453:30086c1aca30

endianness
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 04 Jul 2013 14:29:44 +0200
parents bdd72233b105
children
line wrap: on
line diff
--- a/Core/PngWriter.cpp	Thu Jul 04 11:48:02 2013 +0200
+++ b/Core/PngWriter.cpp	Thu Jul 04 14:29:44 2013 +0200
@@ -37,6 +37,7 @@
 #include <png.h>
 #include "OrthancException.h"
 #include "ChunkedBuffer.h"
+#include "Toolbox.h"
 
 
 // http://www.libpng.org/pub/png/libpng-1.2.5-manual.html#section-4
@@ -171,9 +172,14 @@
       switch (format)
       {
       case PixelFormat_Grayscale16:
-        // Must swap the endianness!!
         png_set_rows(pimpl_->png_, pimpl_->info_, &pimpl_->rows_[0]);
-        png_write_png(pimpl_->png_, pimpl_->info_, PNG_TRANSFORM_SWAP_ENDIAN, NULL);
+
+        if (Toolbox::DetectEndianness() == Endianness_Little)
+        {
+          // Must swap the endianness!!
+          png_write_png(pimpl_->png_, pimpl_->info_, PNG_TRANSFORM_SWAP_ENDIAN, NULL);
+        }
+
         break;
 
       default: