我有个问题。
我该怎么做--我在安卓系统上使用OpenJPEG?(我的"j2k_to_image“主要是想使用。)
我想让你告诉我怎么写一个makefile。提前谢谢。
发布于 2013-11-10 18:27:00
我可以使用下面的大纲构建+使用OpenJPEG将JPEG2000图像加载到我的应用程序中。您必须根据您的环境以及您想如何使用它来定制它。我的答案提供了粗略的指导方针,并给出了我遇到的主要障碍的具体答案(我的Android.mk和Application.mk文件应该是什么,以及如何处理OpenJPEG库需要cmake这一事实)。
由于我们谈论的是OpenJPEG,这个答案假设您熟悉并计划在您的应用程序中使用Android。它还假设您使用的是Android的Eclipse版本。答案还假设您熟悉静态库如何使用Android,以及如何将它们引用到您的主应用程序中。您可以在下面扩展我的答案,以创建一个共享库,或者将代码直接包含到应用程序中。如果您不熟悉这些先决条件,堆栈溢出和Google可以提供帮助。
我成功地使用了Android r8e和OpenJPEG 2.0.0。
步骤:
有了这个功能,我就能够成功地将一个JPEG2000图像加载到基于Android的应用程序中。
Application.mk:
APP_ABI := all
APP_PLATFORM := android-9
APP_MODULES := openjpegAndroid.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 @HAVE_LIBPNG@
//#cmakedefine HAVE_PNG_H @HAVE_PNG_H@
//#cmakedefine HAVE_LIBTIFF @HAVE_LIBTIFF@
//#cmakedefine HAVE_TIFF_H @HAVE_TIFF_H@
#define HAVE_SSIZE_T 1
//#cmakedefine _LARGEFILE_SOURCE
//#cmakedefine _LARGE_FILES
//#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
#define HAVE_FSEEKO 1
//#cmakedefine HAVE_LIBLCMS1
//#cmakedefine HAVE_LIBLCMS2
//#cmakedefine HAVE_LCMS1_H
//#cmakedefine HAVE_LCMS2_H
#endif // OPJ_CONFIG_Hhttps://stackoverflow.com/questions/12575534
复制相似问题