diff --git a/Code/IO/otbImageFileReader.txx b/Code/IO/otbImageFileReader.txx
index 7c51ba6c13af4003e48a33bd26fe74bc08ae3135..30f703f013821028d555e18135db0562ce7a663d 100755
--- a/Code/IO/otbImageFileReader.txx
+++ b/Code/IO/otbImageFileReader.txx
@@ -170,8 +170,8 @@ ImageFileReader<TOutputImage>
     ImageRegionType region = output->GetBufferedRegion();
 
     // Adapte the image size with the region
-    std::streamoff nbBytes = (this->m_ImageIO->GetImageSizeInBytes() / this->m_ImageIO->GetImageSizeInPixels())
-                               * static_cast<std::streamoff>(region.GetNumberOfPixels());
+    std::streamoff nbBytes = (this->m_ImageIO->GetComponentSize() * this->m_ImageIO->GetNumberOfComponents())
+		                     * static_cast<std::streamoff>(region.GetNumberOfPixels());
 
     char * loadBuffer = new char[nbBytes];