【发布时间】:2016-11-25 03:02:20
【问题描述】:
我正在使用 libjpeg9 进行 android 原生开发。我从 android 相机获得的图像数据以 jpeg 格式压缩。然后将数据作为 unsigned char* 数组传输到本机 c++ 函数。根据libjpeg9的函数jpeg_mem_src JPP((j_decompress_ptr cinfo,unsigned char * inbuffer,unsigned long insize))的要求,需要提供数组的大小,即'inbuffer'参数。
据我所知,sizeof 函数不能用于获取数组的大小,因为它只是一个指针。我们也不想改变我们的 c++ 函数的接口来传递数组的大小。
所以我想从 jpeg 的标题中获取数组的大小。有谁知道我可以得到这个 jpeg 图像数组大小的标题的位置吗?
任何帮助将不胜感激!
【问题讨论】:
-
您是在问如何从 JPEG 文件(数组)中提取 JPEG 文件(数组)的大小?该信息不太可能存在——为什么有人会在文件中存储文件的长度? -- 并且咨询this 似乎证实了这种怀疑。
-
Re "我们也不想改变我们的c++函数的接口来传递数组的大小",把数组传递给函数是没有意义的也没有传递它的长度(除非数组是 nul 终止的或类似的,这里不是这种情况)。
-
@ikegami,谢谢您的回复!我们不想改变我们的c++函数的接口的原因是我们使用opencv函数imdecode来解压我们从android相机得到的jpeg图像。这不需要提供数组的大小。但是,我们意识到imdecode太耗时了,所以我们想用libjpeg来代替这个功能。有人说 imdecode 也使用 libjpeg。这是真的吗?
标签: android c++ c image libjpeg