Anzeige:
Ergebnis 1 bis 6 von 6

Thema: PNG-Datei einlesen und bearbeiten

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.10.2011
    Ort
    Braunschweig
    Beiträge
    8

    PNG-Datei einlesen und bearbeiten

    Hallo alle,

    in letzter Zeit beschäftige ich mich mit Steganographie: Allerdings bleibe ich gleich am Anfang hängen, weil ich die Bilddatei nicht in einen Puffer lesen kann. Ich habe es so versucht, kann aber nur selbstgeschriebene, binäre Dateien auf diese Art und Weise einlesen. Eine PNG-Datei wird nicht geöffnet.

    Code:
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    int main( int argc, char *argv[])
    { 
    	QCoreApplication a(argc, argv);
    	fstream FileBin( "bank_house2.png",ios::in|ios::out|ios::binary);
    
    	if( FileBin.is_open())
    	{
      	  FileBin.seekg( 0, ios::end );
      	  FileSize = streamoff( FileBin.tellg());
      	  FileBin.seekg(0, ios::beg);
      	  char* pBuffer = new char[FileSize];
      	  FileBin.read( pBuffer, FileSize );
      	  // hier Inhalt es Puffers bearbeiten
     	  delete[] pBuffer;
       	  FileBin.close();
       	}
       	return a.exec();
    }
    Wer kann mir sagen, wo ich den gravierenden Fehler gemacht habe?

    Gruss Günter Bunge

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Hmm, wenn du schon QCoreApplication benutzt, könntest du einfach QFile und QFile::readAll() benutzen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Allerdings bleibe ich gleich am Anfang hängen, weil ich die Bilddatei nicht in einen Puffer lesen kann. Ich habe es so versucht, kann aber nur selbstgeschriebene, binäre Dateien auf diese Art und Weise einlesen. Eine PNG-Datei wird nicht geöffnet.
    Wenn man deinen Schnippsel erstmal um notwendige Header und Definition von FileSize ergänzt um ihn kompilierbar zu machen, dann öffnet er auch Png-Dateien. Mir ist auch nicht klar was da schiefgehen könnte.

    Also: Poste ein kompilierbares Schnippsel mit einer Ausgabe zur Laufzeit, welche anzeigt, wo dein Problem liegt.

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.10.2011
    Ort
    Braunschweig
    Beiträge
    8
    Hallo anda_skoa,
    du schriebst:

    Code:
    Hmm, wenn du schon QCoreApplication benutzt, könntest du einfach QFile und QFile::readAll() benutzen.
    leider nutzt mir das garnichts, weil eine PNG_Datei garnicht erst geöffnet wird.

    GBunge

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wie locus_vivendi schon geschrieben hat, würde auch dein ursprünglicher Code funktionieren. Dein Problem mit den PNG Dateien muss also irgendwo außerhalb des Programms liegen, vielleicht Dateirechte?

    Meine Verwundernung bezog sich lediglich auf das Mischen von APIs in einem Fall wo die entsprechende Qt Klasse einfach bequemer ist.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    [...] leider nutzt mir das garnichts, weil eine PNG_Datei garnicht erst geöffnet wird.
    Wie schon geschrieben, die wird geöffnet. Dein Fehler liegt wo anders. Oder du interpretierst nur etwas als Fehler, was tatsächlich funktioniert.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •