Mercurial > hg > orthanc
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: