Mercurial > hg > orthanc-wsi
diff Applications/Dicomizer.cpp @ 326:9947e70cbcea
preparing padding of JPEG and PNG
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 17 Oct 2024 17:24:56 +0200 |
parents | a92bb720f90b |
children | c42083d50ddf |
line wrap: on
line diff
--- a/Applications/Dicomizer.cpp Wed Oct 16 21:08:58 2024 +0200 +++ b/Applications/Dicomizer.cpp Thu Oct 17 17:24:56 2024 +0200 @@ -1064,22 +1064,26 @@ OrthancWSI::ImageCompression format = OrthancWSI::DetectFormatFromFile(path); LOG(WARNING) << "File format of the input image: " << EnumerationToString(format); + std::unique_ptr<OrthancWSI::SingleLevelDecodedPyramid> plainImage; + switch (format) { case OrthancWSI::ImageCompression_Png: { sourceCompression = OrthancWSI::ImageCompression_Unknown; - return new OrthancWSI::TiledPngImage(path, - parameters.GetTargetTileWidth(512), - parameters.GetTargetTileHeight(512)); + plainImage.reset(new OrthancWSI::TiledPngImage(path, + parameters.GetTargetTileWidth(512), + parameters.GetTargetTileHeight(512))); + break; } case OrthancWSI::ImageCompression_Jpeg: { sourceCompression = OrthancWSI::ImageCompression_Unknown; - return new OrthancWSI::TiledJpegImage(path, - parameters.GetTargetTileWidth(512), - parameters.GetTargetTileHeight(512)); + plainImage.reset(new OrthancWSI::TiledJpegImage(path, + parameters.GetTargetTileWidth(512), + parameters.GetTargetTileHeight(512))); + break; } case OrthancWSI::ImageCompression_Tiff: @@ -1104,13 +1108,9 @@ try { sourceCompression = OrthancWSI::ImageCompression_Unknown; - return new OrthancWSI::PlainTiff(path, - parameters.GetTargetTileWidth(512), - parameters.GetTargetTileHeight(512), - parameters.GetPadding(), - parameters.GetBackgroundColorRed(), - parameters.GetBackgroundColorGreen(), - parameters.GetBackgroundColorBlue()); + plainImage.reset(new OrthancWSI::PlainTiff(path, + parameters.GetTargetTileWidth(512), + parameters.GetTargetTileHeight(512))); } catch (Orthanc::OrthancException&) { @@ -1122,6 +1122,19 @@ break; } + if (plainImage.get() != NULL) + { + if (parameters.GetPadding() > 1) + { + plainImage->SetPadding(parameters.GetPadding(), + parameters.GetBackgroundColorRed(), + parameters.GetBackgroundColorGreen(), + parameters.GetBackgroundColorBlue()); + } + + return plainImage.release(); + } + try { LOG(WARNING) << "Trying to open the input pyramid with OpenSlide";