gpt4 book ai didi

用于原始文件流元数据的字节序感知读取的 C++ 库?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:14 25 4
gpt4 key购买 nike

我有来自图像文件的原始数据流,例如:

vector<char> rawData(fileSize);
ifstream inFile("image.jpg");
inFile.read(&rawData[0]);

我想解析不同图片格式的header的高度和宽度。是否有可移植的库可以从缓冲区/流中读取 int、long、short 等,并按照指定的字节序进行转换?

我希望能够执行如下操作:short x = rawData.readLeShort(offset);long y = rawData.readBeLong(offset)

更好的选择是可以处理原始图像数据的轻量级和可移植图像元数据库(没有图像处理库的额外重量)。我发现那里的 Exif 库不支持 pnggif

最佳答案

做自己并不难。以下是读取 little endian 32 位数字的方法:

unsigned char buffer[4];
inFile.read(buffer, sizeof(buffer));

unsigned int number = buffer[0] +
(buffer[1] << 8) +
(buffer[2] << 16) +
(buffer[3] << 24);

并读取大端 32 位数字:

unsigned char buffer[4];
inFile.read(buffer, sizeof(buffer));

unsigned int number = buffer[3] +
(buffer[2] << 8) +
(buffer[1] << 16) +
(buffer[0] << 24);

关于用于原始文件流元数据的字节序感知读取的 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com