diff --git a/Code/IO/otbStreamingImageVirtualWriter.h b/Code/IO/otbStreamingImageVirtualWriter.h
index ec8d48db979b3a821d1eb9b8122ad0e945aa71ef..0b5db086be5a4aff754c7cbe78bb0cc7bb9d1b58 100644
--- a/Code/IO/otbStreamingImageVirtualWriter.h
+++ b/Code/IO/otbStreamingImageVirtualWriter.h
@@ -94,6 +94,14 @@ public:
     m_StreamingManager = streamingManager;
     }
 
+  /**  Set the streaming mode to 'stripped' and configure the number of strips
+   *   which will be used to stream the image */
+  void SetNumberOfDivisionsStrippedStreaming(unsigned int nbDivisions);
+
+  /**  Set the streaming mode to 'tiled' and configure the number of tiles
+   *   which will be used to stream the image */
+  void SetNumberOfDivisionsTiledStreaming(unsigned int nbDivisions);
+
   /**  Set the streaming mode to 'stripped' and configure the number of strips
    *   which will be used to stream the image */
   void SetNumberOfLinesStrippedStreaming(unsigned int nbLinesPerStrip);
diff --git a/Code/IO/otbStreamingImageVirtualWriter.txx b/Code/IO/otbStreamingImageVirtualWriter.txx
index bae2553bd0bcb426ac2f6880e8a27813c2675c86..0bcf560b6703ee4c684054432e09ead1f17074d8 100644
--- a/Code/IO/otbStreamingImageVirtualWriter.txx
+++ b/Code/IO/otbStreamingImageVirtualWriter.txx
@@ -23,6 +23,8 @@
 #include "otbConfigure.h"
 #include "itkCommand.h"
 
+#include "otbNumberOfDivisionsStrippedStreamingManager.h"
+#include "otbNumberOfDivisionsTiledStreamingManager.h"
 #include "otbNumberOfLinesStrippedStreamingManager.h"
 #include "otbRAMDrivenStrippedStreamingManager.h"
 #include "otbTileDimensionTiledStreamingManager.h"
@@ -54,6 +56,30 @@ StreamingImageVirtualWriter<TInputImage>
   Superclass::PrintSelf(os, indent);
 }
 
+template <class TInputImage>
+void
+StreamingImageVirtualWriter<TInputImage>
+::SetNumberOfDivisionsStrippedStreaming(unsigned int nbDivisions)
+{
+  typedef NumberOfDivisionsStrippedStreamingManager<TInputImage> NumberOfDivisionsStrippedStreamingManagerType;
+  typename NumberOfDivisionsStrippedStreamingManagerType::Pointer streamingManager = NumberOfDivisionsStrippedStreamingManagerType::New();
+  streamingManager->SetNumberOfDivisions(nbDivisions);
+
+  m_StreamingManager = streamingManager;
+}
+
+template <class TInputImage>
+void
+StreamingImageVirtualWriter<TInputImage>
+::SetNumberOfDivisionsTiledStreaming(unsigned int nbDivisions)
+{
+  typedef NumberOfDivisionsTiledStreamingManager<TInputImage> NumberOfDivisionsTiledStreamingManagerType;
+  typename NumberOfDivisionsTiledStreamingManagerType::Pointer streamingManager = NumberOfDivisionsTiledStreamingManagerType::New();
+  streamingManager->SetNumberOfDivisions(nbDivisions);
+
+  m_StreamingManager = streamingManager;
+}
+
 template <class TInputImage>
 void
 StreamingImageVirtualWriter<TInputImage>