Auflösung von jpg Bildern auslesen



  • Hallo,

    wie kann ich in einem C-Programm, die Auflösung (z.B. 1024x768) eines jpg Bildes auslesen ?

    Was ich benötige ist die Breite mal Höhe in Pixel.

    Best Dank.

    Gruß
    Tuxedor



  • Hier könnt ihr Fragen rund um Standard-C++ stellen. Dazu gehören auch Fragen zur STL bzw. zur Standardbibliothek. Compiler- und betriebssystemspezifische Fragen bitte in den jeweiligen Foren posten.

    mit Standard C++ ist das nicht zu realisieren. Am besten du bittest einen Moderator, dass er dich verschiebt.





  • Dann verschiebe mich bitte in eine Sektion in der mir hoffentlich geholfen werden kann.

    Gruß
    Tuxedor



  • Für welches Betriebssystem suchst du eine Lösung?



  • c++eus schrieb:

    mit Standard C++ ist das nicht zu realisieren

    Klar isses das. Aber dann müsste man das jpg-Format, zb. auf www.wotsit.org, nachlesen und entsprechend die Datei einlesen.

    In der Regel nimmt man da aber wohl fertige Funktionen für, die einem eventuell vom Betriebssystem oder sonstigen Librarys bereitgestellt werden.



  • Hallo,

    ich benötige dies für eine Windwos (Windows 2000) Platteform.

    Es reicht mir aus Höhe und Breite in Pixel auszulesen.

    Gruß
    Tuxedor



  • http://www.c-plusplus.net/forum/viewtopic.php?t=39384

    // get width and height of picture 
    LONG hmWidth; 
    LONG hmHeight; 
    pPicture->get_Width(&hmWidth); 
    pPicture->get_Height(&hmHeight);
    


  • cd9000 schrieb:

    Für welches Betriebssystem suchst du eine Lösung?

    Was hat das mit dem Betriebssystem zu tun?
    Haben .gif files auf Windows ein anderes Format als beispielsweise bei Linux? 😉



  • walker schrieb:

    Was hat das mit dem Betriebssystem zu tun?
    Haben .gif files auf Windows ein anderes Format als beispielsweise bei Linux? 😉

    Je nach Betriebssystem hast du andere Möglichkeiten, die Breite und Höhe eines gifs auszulesen 😉 - das Format ist natürlich das gleiche 🕶



  • Hi,

    vielen Dank für Eure Antworten und ein gutes neues Jahr 2004.

    Da ich mich mit Windowsprogrammen nicht auskenne brauche dies zwar für die Windows Platform, jedoch nicht für ein Windowsprogramm, sondern das Programm läuft hinterher in einer sog. DOS-Box (Windows Eingabeaufforderung). Sodass mir ausreicht welche Library ich brauche und wie ich dann Höhe und Breite auslese und dies eventuell in Pixel umrechne.

    Ich stelle mir das so vor:

    öffnen der Datei
    lesen bis ????
    auslesen höhe
    lesen bis ????
    auslesen breite

    umrechnen höhe und breite in Pixel

    oder stelle ich mir das zu einfach vor ?

    Gruß
    Tuxedor



  • Auf www.wotsit.org müsste sich eigentlich die Definition des jpeg-Formates finden lassen. 🙂

    Flenders hat doch bereits eine Lösung gepostet, warum probierst du es nicht damit?



  • Hallo

    habe einen Quellcode gefunden

    procedure GetResJpg(JPGFile: string); 
    const 
      BufferSize = 50; 
    var 
      Buffer: string; 
      Index: integer; 
      FileStream: TFileStream; 
      HorzRes, VertRes: Word; 
      DP: Byte; 
      Measure: string; 
    begin 
      FileStream := TFileStream.Create(JPGFile, 
        fmOpenReadWrite); 
      try 
        SetLength(Buffer, BufferSize); 
        FileStream.Read(buffer[1], BufferSize); 
        Index := Pos('JFIF' + #$00, buffer); 
        if Index > 0 then 
        begin 
          FileStream.Seek(Index + 6, soFromBeginning); 
          FileStream.Read(DP, 1); 
          case DP of 
            1: Measure := 'DPI'; //Dots Per Inch 
            2: Measure := 'DPC'; //Dots Per Cm. 
          end; 
          FileStream.Read(HorzRes, 2); // x axis 
          HorzRes := Swap(HorzRes); 
          FileStream.Read(VertRes, 2); // y axis 
          VertRes := Swap(VertRes); 
        end 
      finally 
        FileStream.Free; 
      end; 
    end;
    

    Sieht meiner Meinung nach Pascal oder Delphi aus.

    Könnt Ihr mir das bitte in c/c++ "übersetzten" ?

    Gruß
    Tuxedor



  • Öhm - liest Du dir eigentlich gar nicht durch was andere hier schreiben ?
    Der Quellcode den du da geposted hast, liest einfach nur nen jpeg-header aus, der in "JPEG File Format" (wotsit.org - suchen nach 'jpeg') ab Zeile 203 beschrieben wird.


Anmelden zum Antworten