2016-11-25 120 views
0

我正在做使用libjpeg9的android本机开发。我从android相机获得的图像数据以jpeg格式压缩。然后将数据作为无符号char *数组传递给本地C++函数。根据libjpeg9的函数jpeg_mem_src JPP((j_decompress_ptr cinfo,unsigned char * inbuffer,unsigned long insize))的要求,应该提供作为'inbuffer'参数的数组的大小。如何从unsigned char *数组获取jpeg图像数组?

据我所知,sizeof函数不能用于获取数组的大小,因为它只是一个指针。我们也不想改变我们的C++函数的接口来传输数组的大小。

所以我想从jpeg的头部获取数组的大小。有谁知道标题的位置,我可以得到这个jpeg图像数组大小的大小?

任何帮助将不胜感激!

+1

您是否问如何从JPEG文件(数组)中提取JPEG文件(数组)的大小?该信息不可能存在 - 为什么有人将文件的长度存储在文件中? - 并且咨询[this](https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format)似乎证实了这种怀疑。 – ikegami

+1

Re“*我们也不想改变我们的C++函数的接口来传递数组的大小*”,将数组传递给函数而不传递它的长度是没有意义的(除非数组是nul-终止或类似,这里不是这种情况)。 – ikegami

+0

@ikegami,谢谢你的回复!我们不想改变我们的C++函数的接口的原因是我们使用opencv函数imdecode来解压我们从android相机获得的jpeg图像。这不需要提供数组的大小。但是,我们认识到imdecode太耗时,所以我们想用libjpeg来替换这个函数。有人说imdecode也使用libjpeg。真的吗? – KleinXin

回答

0

有谁知道标题的位置,我可以得到这个jpeg图像数组大小的大小?

没有一个。

任何帮助将不胜感激!

更改C++函数的接口来传输数组的大小。

+0

坏消息:(谢谢你们一样! – KleinXin

相关问题