У меня есть необработанные потоки данных из файлов изображений, например:
vector<char> rawData(fileSize);
ifstream inFile("image.jpg");
inFile.read(&rawData[0]);
Я хочу разобрать заголовки разных форматов изображения по высоте и ширине. Существует ли переносимая библиотека, которая может считывать целые, длинные, короткие и т. Д. Из буфера / потока, конвертируя для порядка байтов, как указано?
Я хотел бы иметь возможность сделать что-то вроде: short x = rawData.readLeShort(offset);
или long y = rawData.readBeLong(offset)
Еще лучшим вариантом будет легкая и переносимая библиотека метаданных изображений (без дополнительного веса библиотеки манипуляций с изображениями), которая может работать с необработанными данными изображений. Я обнаружил, что библиотеки Exif там не поддерживают png
и gif
.