Mercurial > hg > orthanc-wsi
comparison 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 |
comparison
equal
deleted
inserted
replaced
324:a92bb720f90b | 326:9947e70cbcea |
---|---|
1062 LOG(WARNING) << "The input image is: " << path; | 1062 LOG(WARNING) << "The input image is: " << path; |
1063 | 1063 |
1064 OrthancWSI::ImageCompression format = OrthancWSI::DetectFormatFromFile(path); | 1064 OrthancWSI::ImageCompression format = OrthancWSI::DetectFormatFromFile(path); |
1065 LOG(WARNING) << "File format of the input image: " << EnumerationToString(format); | 1065 LOG(WARNING) << "File format of the input image: " << EnumerationToString(format); |
1066 | 1066 |
1067 std::unique_ptr<OrthancWSI::SingleLevelDecodedPyramid> plainImage; | |
1068 | |
1067 switch (format) | 1069 switch (format) |
1068 { | 1070 { |
1069 case OrthancWSI::ImageCompression_Png: | 1071 case OrthancWSI::ImageCompression_Png: |
1070 { | 1072 { |
1071 sourceCompression = OrthancWSI::ImageCompression_Unknown; | 1073 sourceCompression = OrthancWSI::ImageCompression_Unknown; |
1072 return new OrthancWSI::TiledPngImage(path, | 1074 plainImage.reset(new OrthancWSI::TiledPngImage(path, |
1073 parameters.GetTargetTileWidth(512), | 1075 parameters.GetTargetTileWidth(512), |
1074 parameters.GetTargetTileHeight(512)); | 1076 parameters.GetTargetTileHeight(512))); |
1077 break; | |
1075 } | 1078 } |
1076 | 1079 |
1077 case OrthancWSI::ImageCompression_Jpeg: | 1080 case OrthancWSI::ImageCompression_Jpeg: |
1078 { | 1081 { |
1079 sourceCompression = OrthancWSI::ImageCompression_Unknown; | 1082 sourceCompression = OrthancWSI::ImageCompression_Unknown; |
1080 return new OrthancWSI::TiledJpegImage(path, | 1083 plainImage.reset(new OrthancWSI::TiledJpegImage(path, |
1081 parameters.GetTargetTileWidth(512), | 1084 parameters.GetTargetTileWidth(512), |
1082 parameters.GetTargetTileHeight(512)); | 1085 parameters.GetTargetTileHeight(512))); |
1086 break; | |
1083 } | 1087 } |
1084 | 1088 |
1085 case OrthancWSI::ImageCompression_Tiff: | 1089 case OrthancWSI::ImageCompression_Tiff: |
1086 { | 1090 { |
1087 if (parameters.IsForceOpenSlide()) | 1091 if (parameters.IsForceOpenSlide()) |
1102 } | 1106 } |
1103 | 1107 |
1104 try | 1108 try |
1105 { | 1109 { |
1106 sourceCompression = OrthancWSI::ImageCompression_Unknown; | 1110 sourceCompression = OrthancWSI::ImageCompression_Unknown; |
1107 return new OrthancWSI::PlainTiff(path, | 1111 plainImage.reset(new OrthancWSI::PlainTiff(path, |
1108 parameters.GetTargetTileWidth(512), | 1112 parameters.GetTargetTileWidth(512), |
1109 parameters.GetTargetTileHeight(512), | 1113 parameters.GetTargetTileHeight(512))); |
1110 parameters.GetPadding(), | |
1111 parameters.GetBackgroundColorRed(), | |
1112 parameters.GetBackgroundColorGreen(), | |
1113 parameters.GetBackgroundColorBlue()); | |
1114 } | 1114 } |
1115 catch (Orthanc::OrthancException&) | 1115 catch (Orthanc::OrthancException&) |
1116 { | 1116 { |
1117 LOG(WARNING) << "This is not a standard plain TIFF file, fallback to OpenSlide (if enabled)"; | 1117 LOG(WARNING) << "This is not a standard plain TIFF file, fallback to OpenSlide (if enabled)"; |
1118 } | 1118 } |
1119 } | 1119 } |
1120 | 1120 |
1121 default: | 1121 default: |
1122 break; | 1122 break; |
1123 } | |
1124 | |
1125 if (plainImage.get() != NULL) | |
1126 { | |
1127 if (parameters.GetPadding() > 1) | |
1128 { | |
1129 plainImage->SetPadding(parameters.GetPadding(), | |
1130 parameters.GetBackgroundColorRed(), | |
1131 parameters.GetBackgroundColorGreen(), | |
1132 parameters.GetBackgroundColorBlue()); | |
1133 } | |
1134 | |
1135 return plainImage.release(); | |
1123 } | 1136 } |
1124 | 1137 |
1125 try | 1138 try |
1126 { | 1139 { |
1127 LOG(WARNING) << "Trying to open the input pyramid with OpenSlide"; | 1140 LOG(WARNING) << "Trying to open the input pyramid with OpenSlide"; |