2016-11-25 19 views
0

Я занимаюсь разработкой в ​​андроиде, используя libjpeg9. Данные изображения, которые я получаю с камеры Android, сжимаются в формате jpeg. Затем данные передаются на встроенную функцию C++ в виде массива unsigned char *. В соответствии с требованиями функции jpeg_mem_src JPP ((j_decompress_ptr cinfo, unsigned char * inbuffer, unsigned long insize)) libjpeg9 должен быть указан размер массива, который является параметром «inbuffer».Как получить массив изображений jpeg из массива unsigned char *?

Насколько я знаю, функция sizeof не может использоваться для получения размера массива, потому что это только указатель. Мы также не хотим изменять интерфейс нашей функции C++ для передачи размера массива.

Так что я хочу получить размер массива из заголовка jpeg. Кто-нибудь знает позицию заголовка, где я могу получить размер этого размера массива jpeg-изображений?

Любая помощь будет оценена!

+1

Вы спрашиваете, как извлечь размер файла JPEG (массив) из файла JPEG (массив)? Эта информация вряд ли будет присутствовать - почему кто-нибудь сохранит длину файла внутри файла? - и консультирование [это] (https://en.wikipedia.org/wiki/JPEG_File_Interchange_Format), похоже, подтверждает это подозрение. – ikegami

+1

Re "* Мы также не хотим менять интерфейс нашей функции C++, чтобы передать размер массива *". Нет смысла передавать массив в функцию, не передавая ее длину (если массив не равен nul- завершен или подобен, что здесь не так). – ikegami

+0

@ikegami, благодарю вас за ответ! Причина, по которой мы не хотим менять интерфейс нашей функции C++, заключается в том, что мы использовали opendv-функцию imdecode для распаковки jpeg-изображения, которое мы получаем с камеры Android. Это не требуется для обеспечения размера массива. Однако мы понимаем, что imdecode слишком трудоемкий, поэтому мы хотим использовать libjpeg для замены этой функции. Кто-то говорит, что imdecode также использует libjpeg. Это правда? – KleinXin

ответ

0

Кто-нибудь знает позицию заголовка, где я могу получить размер этого размера массива jpeg?

Существует не один.

Любая помощь будет оценена!

Измените интерфейс своей функции C++, чтобы передать размер массива.

+0

Плохие новости :(Спасибо всем! – KleinXin