- size_t ItemRead = fread( Decompressed, PixelDataLength, 1, fp );
- if ( ItemRead != 1 )
+ // This problem can be found when some obvious informations are found
+ // after the field containing the image datas. In this case, these
+ // bad datas are added to the size of the image (in the PixelDataLength
+ // variable). But DecompressedSize is the right size of the image !
+ if( PixelDataLength != DecompressedSize)
+ {
+ dbg.Verbose( 0, "PixelConvert::ReadAndDecompressPixelData: "
+ "Mismatch between PixelConvert and DecompressedSize." );
+ }
+ if( PixelDataLength > DecompressedSize)
+ {
+ fp->read( (char*)Decompressed, DecompressedSize);
+ }
+ else
+ {
+ fp->read( (char*)Decompressed, PixelDataLength);
+ }
+
+ if ( fp->fail() || fp->eof())//Fp->gcount() == 1