Mercurial > hg > orthanc-webviewer
comparison Plugin/DecodedImageAdapter.cpp @ 126:f99adade8b77
Fixed rendering of 16bpp images if values are < 0 or >= 32768
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 25 Mar 2016 11:55:35 +0100 |
parents | 3809121c3290 |
children | d850500b8ca6 |
comparison
equal
deleted
inserted
replaced
125:145e654112d6 | 126:f99adade8b77 |
---|---|
295 converted = accessor; | 295 converted = accessor; |
296 break; | 296 break; |
297 | 297 |
298 case Orthanc::PixelFormat_Grayscale8: | 298 case Orthanc::PixelFormat_Grayscale8: |
299 case Orthanc::PixelFormat_Grayscale16: | 299 case Orthanc::PixelFormat_Grayscale16: |
300 buffer.SetFormat(Orthanc::PixelFormat_SignedGrayscale16); | 300 buffer.SetFormat(Orthanc::PixelFormat_Grayscale16); |
301 buffer.SetWidth(accessor.GetWidth()); | 301 buffer.SetWidth(accessor.GetWidth()); |
302 buffer.SetHeight(accessor.GetHeight()); | 302 buffer.SetHeight(accessor.GetHeight()); |
303 converted = buffer.GetAccessor(); | 303 converted = buffer.GetAccessor(); |
304 Orthanc::ImageProcessing::Convert(converted, accessor); | 304 Orthanc::ImageProcessing::Convert(converted, accessor); |
305 break; | 305 break; |
311 default: | 311 default: |
312 // Unsupported pixel format | 312 // Unsupported pixel format |
313 return false; | 313 return false; |
314 } | 314 } |
315 | 315 |
316 result["Orthanc"]["IsSigned"] = (accessor.GetFormat() == Orthanc::PixelFormat_SignedGrayscale16); | |
317 | |
316 // Sanity check: The pitch must be minimal | 318 // Sanity check: The pitch must be minimal |
317 assert(converted.GetSize() == converted.GetWidth() * converted.GetHeight() * | 319 assert(converted.GetSize() == converted.GetWidth() * converted.GetHeight() * |
318 GetBytesPerPixel(converted.GetFormat())); | 320 GetBytesPerPixel(converted.GetFormat())); |
319 result["Orthanc"]["Compression"] = "Deflate"; | 321 result["Orthanc"]["Compression"] = "Deflate"; |
320 result["sizeInBytes"] = converted.GetSize(); | 322 result["sizeInBytes"] = converted.GetSize(); |
421 else | 423 else |
422 { | 424 { |
423 return false; | 425 return false; |
424 } | 426 } |
425 | 427 |
428 result["Orthanc"]["IsSigned"] = (accessor.GetFormat() == Orthanc::PixelFormat_SignedGrayscale16); | |
426 result["Orthanc"]["Compression"] = "Jpeg"; | 429 result["Orthanc"]["Compression"] = "Jpeg"; |
427 result["sizeInBytes"] = converted.GetSize(); | 430 result["sizeInBytes"] = converted.GetSize(); |
428 | 431 |
429 std::string jpeg; | 432 std::string jpeg; |
430 WriteJpegToMemory(jpeg, image.GetContext(), converted, quality); | 433 WriteJpegToMemory(jpeg, image.GetContext(), converted, quality); |