20/11/2011, 07:25
|
| | Fecha de Ingreso: agosto-2011
Mensajes: 17
Antigüedad: 13 años, 5 meses Puntos: 0 | |
Trabajando con archivos Buenas a todos, estoy haciendo un programa que coje dos fotos y las junta en un archivo final.jpg. Luego abre final.jpg ,para leer la foto que esta al final del archivo y crear una foto nueva, con la imagen 2.El problema es que aun teniendo el mismo tamaño y todo la foto no se ve dice que puede estar dañado. Os adjunto el codigo a ver si me podeis hechar un cable. Un saludo y gracias!
Código:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
//Declaramos los buffers y sus tamaños
char*buffer;
int length;
char*buffer2;
int length2;
char*buffer3;
//Almacenamos la foto en un buffer1 con su length1
ifstream in;
in.open("C:/foto.jpg",ios::binary);
in.seekg (0, ios::end);
length = in.tellg();
in.seekg (0, ios::beg);
buffer = new char [length];
in.read (buffer,length);
in.close();
//Almacenamos la foto2 en buffer2 con su length2
ifstream in2;
in2.open("C:/foto2.exe",ios::binary);
in2.seekg (0, ios::end);
length2 = in2.tellg();
in2.seekg (0, ios::beg);
buffer2 = new char [length2];
in2.read (buffer2,length2);
in2.close();
//Guardamos las dos fotos en un archivo final, una detras de otra
ofstream out;
out.open("C:/final.jpg",ios::binary);
out.write(buffer,length);
out.seekp (length);
out.write(buffer2,length2);
out.close();
//Abrimos el archivo final,nos posicionamos en la 2 foto,la almacenamos
//en un buffer y la guardamos en final.jpg
ifstream in3;
in3.open("C:/final.jpg",ios::binary);
in3.seekg(length);
in3.read(buffer3,length2);
in3.close();
ofstream out2;
out2.open("C:/foto3.exe",ios::binary);
out2.write(buffer3,length2);
out2.close();
return 0;
}
|