2016-11-25 1 views
0

libjpeg9를 사용하여 안드로이드 네이티브 개발을하고 있습니다. 안드로이드 카메라에서 가져온 이미지 데이터는 jpeg 형식으로 압축됩니다. 그런 다음 데이터는 원시 C++ 함수로 unsigned char * 배열로 전송됩니다. libjpeg9의 jpeg_mem_src JPP ((j_decompress_ptr cinfo, unsigned char * inbuffer, unsigned long insize))가 요구하는대로 'inbuffer'매개 변수 인 배열의 크기를 제공해야합니다.jpeg 이미지 배열을 unsigned char * 배열에서 가져 오는 방법은 무엇입니까?

내가 아는 한 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 camera에서 얻은 jpeg 이미지의 압축을 풀었 기 때문입니다. 이것은 배열의 크기를 제공 할 필요가 없습니다. 그러나 imdecode가 너무 오래 걸리므로 libjpeg를 사용하여이 함수를 대체하려고합니다. 누군가는 imdecode가 libjpeg도 사용한다고 말합니다. 그게 사실이야? – KleinXin

답변

0

누구나이 jpeg 이미지 크기의 크기를 얻을 수있는 헤더의 위치를 ​​알고 있습니까?

하나도 존재하지 않습니다.

도움이 될 것입니다!

배열의 크기를 전송하기 위해 C++ 함수의 인터페이스를 변경하십시오.

+0

나쁜 소식 : (모두 감사합니다! – KleinXin

관련 문제