我正在尝试修改一个C++库,该库具有从图像文件创建CImg实例的功能,改而使用字节数组。这可能吗?我发现一种似乎允许它的方法...
CImg ( const t *const values,
const unsigned int size_x,
const unsigned int size_y = 1,
const unsigned int size_z = 1,
const unsigned int size_c = 1,
const bool is_shared = false
)
...但是由于我所拥有的只是字节数组,因此我没有源图像的尺寸。
更新地址评论
这是对pHash库进行修改的尝试,该库使用此处定义的CImg类http://cimg.sourceforge.net/reference/structcimg__library_1_1CImg.html
通过对源图像的http请求填充字节数组。
最佳答案
如果字节数组包含整个图像文件的副本(而不仅仅是位图部分),则可以从标题中读取尺寸。
请参阅 BITMAPFILEHEADER
和 BITMAPINFOHEADER
(当然,对于其他格式,例如PNG或JPEG,您将需要相应的 header )。
例如,这使您可以从网络或应用程序资源段查看图像,而无需先将其写入磁盘。
关于c++ - 从字节数组创建CImg <uint8_t>吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7758491/