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);