Breite/Höhe von *.Raw Datei ermitteln



  • Hi! Ich würde gerne die größer einer geladenen *.Raw Datei heraus bekommen. Ich lade sie mit der STL:

    std::ifstream data;
    data.open(path.c_str(), std::ios::binary);
    

    Ich würde sie auch gerne weiterhin nur mit dieser Funktion laden, jedoch weiß ich ehrlich gesagt überhaupt nicht wie ich an die Größe komme kann.



  • data.seekg( 0, ios::end );  //Ende springen
    size_t length = data.tellg(); //Position abfragen
    data.seekg( 0, ios::beg ); //An den Anfang springen
    


  • So mache ich das bisher auch, aber was mache ich wenn ich die Höhe und die Breite raus bekommen möchte, also wenn das Bild 800px breit und 400px hoch ist. Ich vermute das dies garicht möglich ist, da soweit ich weiß raw dateien keine header haben.



  • Die haben mit Sicherheit auch Header. Allerdings hat da jeder Kamerahersteller sein eigenes Format.



  • Braunstein schrieb:

    Die haben mit Sicherheit auch Header. Allerdings hat da jeder Kamerahersteller sein eigenes Format.

    so ist es. canon zum Beispiel unterstützt dieses:
    http://www.sno.phy.queensu.ca/~phil/exiftool/canon_raw.html

    Hat eine RAW Datei keinen Header, dann wird das ganze recht schwierig. Alles was du machen kannst ist eine Art brute force methode verwenden, indem du einige bildformate durchtestet. bekommst du z.B. eine Pixelanzahl von 1.920.000 hearus, so koennte es sich um die Auflösung 1600x1200 handeln. Allerdings wäre ein Header das einzig zuverlässige!


Log in to reply