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