Image binär öffnen/speichern
Image binär öffnen/speichern
Hallo,
ich muss ein Image öffnen und die Daten binär in ein Textfile schreiben.
Gibt es hierzu Funktionen in QT?
Ich stell mich glaub ich ein wenig zu doof an.
ich muss ein Image öffnen und die Daten binär in ein Textfile schreiben.
Gibt es hierzu Funktionen in QT?
Ich stell mich glaub ich ein wenig zu doof an.
Glaub wir können uns ned besser anstellen
Image, was iss denn das ? nen Bilddatei ? welches Format ?? bmp,jpeg,png ??
in ne textdatei ? was soll denn da drinne stehen ? das bild binaer codiert als octets ?
Wozu genau brauchst du das, vielleicht wird daraus klar was genau du willst !
Ciao ...
versuch mal bissi aehm präziser zu werden !ich muss ein Image öffnen und die Daten binär in ein Textfile schreiben.
Image, was iss denn das ? nen Bilddatei ? welches Format ?? bmp,jpeg,png ??
in ne textdatei ? was soll denn da drinne stehen ? das bild binaer codiert als octets ?
Wozu genau brauchst du das, vielleicht wird daraus klar was genau du willst !
Ciao ...
Ich habe die Anforderung bekommen ein Image (Tiff) zu öffnen und das Bild als Binärdatei in eine Textdatei zu speichern.
Ich habs grade so probiert:
Ich habs grade so probiert:
Code: Alles auswählen
QString theData;
QFile pic(img);
pic.open(QIODevice::ReadOnly);
QDataStream in(&pic); // read the data serialized from the file
in >> theData;
qDebug() << in;ok, dann erklaer mal genauer, wie man eine Binaerdatei als textdatei speichert, weil davon hab ich keine Ahnung
Zeig mal wie die Textdatei hinterher aussehen soll ca !
Ciao ...
Was erwartest du wenn du versuchst Texte aus einer binären Datei zu lesen ?Code: Alles auswählen
QDataStream in(&pic); // read the data serialized from the file in >> theData;
Zeig mal wie die Textdatei hinterher aussehen soll ca !
Ciao ...
Also jetzt mach ich das so, das müsste stimmen:
Code: Alles auswählen
QString theData;
using namespace std;
ifstream is;
is.open(theImg, ios::binary);
char ch;
while (is.get(ch))
theData += ch;
Was spricht gegen
Dann hast du Binärdaten in nem Textfile 
Code: Alles auswählen
QFile::copy("image.tif", "file.txt");Beiist es QFile glaub ich ziemlich egal welches format die bilddatei hat!
Code: Alles auswählen
QFile::copy("image.tif", "file.txt");Sicher war das die richtige Antwort. Bei einem "Copy" wird einfach auf Dateisystemebene ein Duplikat der Ursprungsdatei angelegt. Da ist es wurscht, ob das ein Bild, ein Executable oder ein SQLite-db-file ist.
Wenn du das anders implementieren willst und je nach Bildformat eine andere Methode aufrufen, ist das entweder 1) unverlässlich oder 2) aufwändig.
1) du verlässt dich darauf, dass in einem ".jpeg" auf ein JPeg-Bild drinsteckt. Also eine rein Dateiendungs-basierte Unterscheidung.
2) Du schaust in den Dateiheader, und ermittels so, welches Format das ist. Denn ein böser Bub kann dir einen Streich spielen, und ein executable als .jpeg tarnen. Du clickst drauf und "Peng".
Oder deine Bild->Text-Routine funktioniert nicht, weil aus dem Bild nur Mist rauskommt
Wenn du das anders implementieren willst und je nach Bildformat eine andere Methode aufrufen, ist das entweder 1) unverlässlich oder 2) aufwändig.
1) du verlässt dich darauf, dass in einem ".jpeg" auf ein JPeg-Bild drinsteckt. Also eine rein Dateiendungs-basierte Unterscheidung.
2) Du schaust in den Dateiheader, und ermittels so, welches Format das ist. Denn ein böser Bub kann dir einen Streich spielen, und ein executable als .jpeg tarnen. Du clickst drauf und "Peng".
Oder deine Bild->Text-Routine funktioniert nicht, weil aus dem Bild nur Mist rauskommt