질문이 있습니다.Android 용 OpenJPEG 빌드
Android에서 OpenJPEG을 어떻게 사용합니까? (저는 "j2k_to_image"가 주로 사용하기를 원합니다.)
메이크 파일을 작성하는 방법을 알려주시겠습니까? 미리 감사드립니다.
질문이 있습니다.Android 용 OpenJPEG 빌드
Android에서 OpenJPEG을 어떻게 사용합니까? (저는 "j2k_to_image"가 주로 사용하기를 원합니다.)
메이크 파일을 작성하는 방법을 알려주시겠습니까? 미리 감사드립니다.
다음 윤곽선을 사용하여 OpenJPEG를 사용하여 JPEG2000 이미지를 내 앱에로드 할 수있었습니다. 환경 및 사용 방법에 따라 사용자 정의해야합니다. 내 대답은 내가 겪은 주요 장애 요소 (Android.mk 및 Application.mk 파일이 무엇인지, OpenJPEG 라이브러리에는 cmake가 필요하다는 사실을 다루는 방법)에 대한 구체적인 답변과 함께 대략적인 지침을 제공합니다.
우리는 OpenJPEG에 대해 이야기하고 있으므로이 대답은 사용자가 익숙한 것으로 간주하고 앱에 Android NDK를 사용할 계획이라고 가정합니다. 또한 이클립스 버전의 Android IDE를 사용한다고 가정합니다. 대답은 또한 정적 라이브러리가 Android NDK와 함께 작동하는 방식과 기본 앱으로 참조하는 방법을 잘 알고 있다고 가정합니다. 내 대답을 확장하여 공유 라이브러리를 만들거나 직접 코드를 앱에 포함시킬 수 있습니다. 이러한 전제 조건에 익숙하지 않은 사용자라면 stackoverflow와 Google이 도움이 될 수 있습니다.
Android NDK r8e 및 OpenJPEG 2.0.0으로 성공했습니다.
단계 :
에
Application.mk :
APP_ABI := all
APP_PLATFORM := android-9
APP_MODULES := openjpeg
Android.mk는 (아래의 모든 경로를 사용자 정의해야합니다) :
# Taken from https://stackoverflow.com/questions/4036191/sources-from-subdirectories-in-makefile
# The trailing slash is required.
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
ALL_CPPS := $(call rwildcard,../../openjpeg-2.0.0/src/lib/openjp2,*.c)
ALL_CPPS += $(call rwildcard,../../openjpeg-2.0.0/src/lib/openjpip,*.c)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := openjpeg
LOCAL_C_INCLUDES := /path/to/openjpeg-2.0.0/src/lib/openjp2
LOCAL_SRC_FILES := $(addprefix ../,$(ALL_CPPS))
LOCAL_CFLAGS = -DUSE_JPIP
include $(BUILD_STATIC_LIBRARY)
opj_config.h는 (일반적으로 cmake 플랫폼이를 생성하면 에 대한 건물 -하지만 내가 위에서 언급 한 것처럼 나는 cmake 다루고 싶지 않았어, 그래서이 파일을 직접 만든) :
#ifndef OPJ_CONFIG_H
#define OPJ_CONFIG_H
#define OPJ_PACKAGE_VERSION "2.0.0"
#define HAVE_INTTYPES_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STDINT_H 1
#ifndef HAVE_STDLIB_H // I had a conflict with this somewhere else in my project -- good form dictates that I should probably ifndef guard the other defines in this file as well....that is a TODO for later
#define HAVE_STDLIB_H 1
#endif
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
// I'm not utilizing libpng or libtiff, so don't set these
//#cmakedefine HAVE_LIBPNG @[email protected]
//#cmakedefine HAVE_PNG_H @[email protected]
//#cmakedefine HAVE_LIBTIFF @[email protected]
//#cmakedefine HAVE_TIFF_H @[email protected]
#define HAVE_SSIZE_T 1
//#cmakedefine _LARGEFILE_SOURCE
//#cmakedefine _LARGE_FILES
//#cmakedefine _FILE_OFFSET_BITS @[email protected]
#define HAVE_FSEEKO 1
//#cmakedefine HAVE_LIBLCMS1
//#cmakedefine HAVE_LIBLCMS2
//#cmakedefine HAVE_LCMS1_H
//#cmakedefine HAVE_LCMS2_H
#endif // OPJ_CONFIG_H