Ich habe Rohdatenströme aus Bilddateien erhalten, wie:C++ - Bibliothek für Endian-bewusste Lesen von Raw-Datei-Stream-Metadaten?
vector<char> rawData(fileSize);
ifstream inFile("image.jpg");
inFile.read(&rawData[0]);
Ich möchte die Header der verschiedenen Bildformate für Höhe und Breite analysieren. Gibt es eine portable Bibliothek, die Ints, Longs, Shortcuts usw. aus dem Puffer/Stream lesen kann, um die Endanfälligkeit wie angegeben zu konvertieren?
Ich möchte in der Lage sein, etwas zu tun wie: short x = rawData.readLeShort(offset);
oder long y = rawData.readBeLong(offset)
Ein noch bessere Option wäre eine leichte & portable Bild-Metadaten-Bibliothek (ohne das zusätzliche Gewicht einer Bibliothek zur Bildbearbeitung), die arbeiten kann, auf rohen Bilddaten. Ich habe festgestellt, dass Exif-Bibliotheken da draußen png
und gif
nicht unterstützen.
ich verallgemeinerte, dass dazu: 'Vorlage T Magie :: getLE (const char * Daten) const {T Wert = 0; int Bytes = Größe von (T); für (int i = 0; i
Kache
Tatsächlich hat der obige Code einen Fehler. Anstatt "Zeichen" einzeln zu verschieben, verschiebt es "T" nacheinander. Dies behebt folgendes: 'template T Magic :: getLE (const char * Daten) const {T Wert = 0; int Bytes = Größe von (T); unsigned char c; für (int i = 0; i
Kache