From: Devon Y. <9to...@gm...> - 2013-05-16 16:32:24
|
Hi guys.. I have been trying to use just a several lines of codes from lcms in Android NDK but still haven't completed it.. Here's what I did: 1. copy whole library folder under jni folder in java project. (ex. {project-dir}/jni/lcms2-2.2 ) 2. add compile/build info in android.mk LCMS_SRC_PATH := lcms2-2.2/ LOCAL_C_INCLUDES := \ ${LCMS_SRC_PATH}include/ \ LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmscam02.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmserr.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmstypes.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsmd5.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmswtpnt.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsgmt.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmspcs.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsopt.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmscnvrt.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsps2.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmssamp.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsplugin.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsmtrx.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmspack.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsio0.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsgamma.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmscgats.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsxform.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsnamed.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmssm.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsio1.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsintrp.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmslut.c LOCAL_SRC_FILES += ${LCMS_SRC_PATH}src/cmsvirt.c LOCAL_LDLIBS += -llog -ldl -L../lib -lGLESv1_CM include $(BUILD_SHARED_LIBRARY) 3. in a cpp file, I added lcms source code #include "lcms2.h" string icc1 = RESOURCE_DIRECTORY + "/storage/emulated/extSdCard/ICC/CP01.icc"; string icc2 = RESOURCE_DIRECTORY + "/storage/emulated/extSdCard/ICC/sRGB.icm"; int width = dst->size[1]; int height = dst->size[0]; if(!cmsLoaded) { hInProfile = cmsOpenProfileFromFile(icc1.c_str(), "r"); hOutProfile = cmsOpenProfileFromFile(icc2.c_str(), "r"); cmsLoaded = true; } hTransform = cmsCreateTransform(hInProfile, TYPE_BGR_8, hOutProfile, TYPE_BGR_8, INTENT_PERCEPTUAL, 0); if(hInProfile && hOutProfile) { cmsDoTransform(hTransform, dst->data, dst->data, width*height); } The problem is hInProfile and hOutProfile are getting null all the time. Can any1 tell me what the problem is? Or can you give me a link of a nice tutorial of using lcms in Android NDK? |