bmp datei kopieren



  • hallo alle zusammen

    ich würde gerne eine bmp Datei mit fstreams kopieren indem ich sie teilweise einlese und schreibe.
    Jedoch funktioniert es nur bei kleineren Bildern (300 x 308).
    Sind die Bilder größer (1280 x 1024) fehlt der obere Teil vom Bild.
    wieso ist das so und wie kann ich mein Programm verbessern damit es auch bei großen Bildern funktioniert.

    hier mal der code mit dem ich es probiert habe

    #include <fstream>
    
    using namespace std; 
    
    int main() 
    { 
         int bild_s = 3932214 /2; //datei größe /2     klein: 46934 groß: 3932214
         char Path[] = "bild.bmp";
         char Path2[] = "bild2.bmp";
    
         char buf[bild_s];
    
         ifstream f1(Path);
         ofstream f2(Path2);
    
         f1.read(buf, bild_s);
         f2.write(buf, bild_s);
    
         f1.read(buf, bild_s);
         f2.write(buf, bild_s);
    
         f2.close();
         f1.close();
    
         return 0; 
    }
    

    würde mich über Antworten freuen 🙂

    mfg Braineater



  • Du solltest binär lesen. Dazu übergibst du bei open() oder dem Konstruktor als zweites Argument das Flag std::ios_base::binary .

    Mehr...



  • Perfekt! 🙂
    Es funktioniert.

    danke für die schnelle hilfe. 🙂


Anmelden zum Antworten