我正在尝试修改一个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/

10-11 18:22