- for (unsigned int i=0;i<number_of_output_images;i++)
- {
- std::ostringstream ss;
- ss << i;
- index[mSplitDimension]=i;
- extracted_region.SetIndex(index);
- filter->SetExtractionRegion(extracted_region);
- filter->Update();
+ for (unsigned int i=0; i<number_of_output_images; i++) {
+ std::ostringstream ss;
+ ss << std::setfill('0') << std::setw((int)(log10(number_of_output_images)+1)) << i;
+ index[mSplitDimension]=i;
+ extracted_region.SetIndex(index);
+ filter->SetExtractionRegion(extracted_region);
+ filter->Update();
+ if(this->m_Png){
+ typedef itk::Image< unsigned char, ImageType::ImageDimension-1 > OutputPngImageType;
+ typedef itk::IntensityWindowingImageFilter< OutputImageType, OutputPngImageType > CastFilterType;
+ typename CastFilterType::Pointer cast = CastFilterType::New();
+ cast->SetWindowLevel(this->m_Window, this->m_Level);
+ cast->SetInput(filter->GetOutput());
+ SetOutputFilename(base_filename+"_"+ss.str()+".png");
+ SetNextOutput<OutputPngImageType>(cast->GetOutput());
+ }
+ else {