+//--------------------------------------------------------------------
+void clitk::CropImageGenericFilter::SetArgsInfo(const args_info_type& a)
+{
+ mArgsInfo=a;
+ SetIOVerbose(mArgsInfo.verbose_flag);
+ if (mArgsInfo.imagetypes_flag) this->PrintAvailableImageTypes();
+ if (mArgsInfo.input_given) AddInputFilename(mArgsInfo.input_arg);
+ if (mArgsInfo.output_given) AddOutputFilename(mArgsInfo.output_arg);
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+template <class ImageType>
+typename clitk::CropImageGenericFilter::AutoCrop<ImageType>::ImagePointer
+clitk::CropImageGenericFilter::AutoCrop<ImageType>::Do(args_info_type &argsInfo, ImagePointer input)
+{
+ static const unsigned int PixelDimension = itk::PixelTraits<typename ImageType::PixelType>::Dimension;
+ return this->Do(argsInfo, input, static_cast< PixelDimType<PixelDimension> *>(NULL) );
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+template <class ImageType>
+template<unsigned int Dim>
+typename clitk::CropImageGenericFilter::AutoCrop<ImageType>::ImagePointer
+clitk::CropImageGenericFilter::AutoCrop<ImageType>::Do(args_info_type &, ImagePointer, PixelDimType<Dim> *)
+{
+ clitkExceptionMacro("Autocrop is not implemented for vector fields");
+ return ITK_NULLPTR;
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+template <class ImageType>
+typename clitk::CropImageGenericFilter::AutoCrop<ImageType>::ImagePointer
+clitk::CropImageGenericFilter::AutoCrop<ImageType>::Do(args_info_type &argsInfo, ImagePointer input, PixelDimType<1> *)