6 Stimmen

Wie fügt man EXIF-Tags in eine JPG-Datei ein, wenn man den Raw-JPEG-Buffer in C++ hat?

Ich habe ein kleines Problem.

Ich erhalte einen RAW-Zeiger auf einen Puffer von einer Kamera und ich muss diese Tags hinzufügen, bevor ich sie auf die Festplatte speichern kann. Das Schreiben der Datei auf die Festplatte und das erneute Lesen ist keine Option, da dies tausende Male geschehen wird.

Die Pufferdaten, die ich von der Kamera erhalte, enthalten keine EXIF-Informationen, außer der Breite, Höhe und Pixel pro Zoll.

Irgendwelche Ideen? (C++)

4voto

shodanex Punkte 14453

Schau dir dieses PDF an, auf Seite 20 findest du ein Diagramm, das dir zeigt, wo du deine Exif-Informationen platzieren oder ändern kannst. Was ist der Unterschied zu einer Datei auf der Festplatte?

Enthält der JPEG-Puffer deiner Kamera bereits einen EXIF-Bereich?

1voto

shoosh Punkte 73374

Was ist der Unterschied? Warum wäre es anders, dies in einer Datei auf der Festplatte zu tun als es im Speicher zu tun?

Machen Sie einfach das, was Sie tun, nachdem Sie die Datei von der Festplatte gelesen haben.

1voto

Jakub Kotrla Punkte 257

Soweit ich weiß, sind die EXIF-Daten in JPEG ein kontinuierlicher Teil der Datei. Also

  1. Bereiten Sie die EXIF-Daten im Speicher vor
  2. Schreiben Sie einen Teil der JPEG-Datei bis zum EXIF
  3. Schreiben Sie die vorbereiteten EXIF-Daten
  4. Schreiben Sie den Rest der JPEG-Datei

1voto

Marcin Gil Punkte 65334

Vielleicht möchten Sie einen Blick in die Exiv2 Bibliothek werfen. Ich weiß, dass sie mit Dateien arbeiten kann, aber ich nehme an, sie hat auch Funktionen zum Arbeiten mit Speicherpuffern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X