我正在尝试修改具有从图像文件创建CImg实例的函数的C ++库,而不是使用字节数组。这可能吗?我找到了一种似乎允许它的方法......
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请求填充字节数组。
答案 0 :(得分:2)
如果您的字节数组包含整个图像文件的副本(而不仅仅是位图部分),那么您可以从标题中读取尺寸。
请参阅BITMAPFILEHEADER
和BITMAPINFOHEADER
(当然,对于其他格式,例如PNG或JPEG,您需要相应的标题)。
例如,这将允许您从网络或应用程序资源段查看图像,而无需先将其写入磁盘。