Bonjour à tous!

Il faut bien le dire, je viens de passer pas mal de temps à essayer de faire les chose correctement à coup de read, ou de std::copy, mais il se passe pas grand chose à l'exécution...
Mon problème est le suivant : je possède un gros fichier ( 60Mo) dans lequel est concaténé une centaine d'images en format "RAW" (16 bits). Le tout représentant un film bien entendu.

Etant donné la taille du fichier, je vais lire les images une par une....
L'idée est donc de créer un buffer de la taille d'une image, puis de copier le bout du fichier correspondant dans le buffer. Après je construit mon image à partir de ce buffer.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
std::ifstream fichier ("test.bin", std::iosbase::binary);
std::vector<unsigned short> vect ( 450 000);
 
std::copy(std::istream_iterator<unsigned short>(fichier), end, std::back_inserter(vect) );
Seulement, je ne peux pas mettre std::istream_iterator<unsigned short>()
comme fin de flux, car ça me ferait lire tout le fichier!
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
std::istream_iterator<unsigned short>(fichier) + n
n'existe pas !

L'idée serait vraiment de pouvoir choisir le point de départ et le point d'arrivée du flux...
Si vous avez une idée, je suis très très preneur !

Merci !