Estoy intentando concatenar unos ficheros bmp en uno solo (sin cabeceras).
Lo que hago es:
- Leo todos los bytes de uno (a memoria, quitando la cabecera)
- Los escribo en el fichero destino.
- Paso al siguiente.
Bien, el problema es que al terminar de escribir un fichero, antes de pasar al siguiente , aparecen unos cuantos bytes extra (ýýýý concretamente).
Es decir, supongamos que A, B y C son los bytes de 3 ficheros, al final en lugar de quedar en el fichero destino ABC queda AýýýýBýýýýCýýýý.
He comprobado que el problema no es al leer los ficheros, porque he probado a leer solo 1 y volver a escribirlo, y escribe todos los bytes y al final el ýýýý.
¿Qué puedo hacer?
Adjunto el código que uso PARA ESCRIBIR, (la función LoadBMP lee todos los bytes del fichero bmp sin cabeceras):
Código:
int RAWCreator::toRawFile(char *bmps[],int numBmps,const char *dstFile){
fstream aux(dstFile);
ofstream dst;
if(aux.good()){
aux.close();
return RAWCreator::ALREADY_EXIST;
}
dst.open(dstFile, ios::app);
for(int i=0;i<numBmps;i++){
dst<<LoadBMP(bmps[i],this->bih);
}
dst.close();
return SUCCESS;
}