- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一个使用 DevIL 的 Android 应用程序用于图像处理。我从 this project 得到了 DevIL 及其依赖库的端口.我编辑并提取了我需要的东西。它编译得很好,库也可以工作,但是当我尝试加载时却没有 JPEG文件...
使用 DevIL 错误代码,我发现错误编号为 1506,它转换为 IL_LIB_JPEG_ERROR
,这意味着我的 JPEG 库中存在问题。我尝试更新到最新的 JPEG 库,但都失败了。我还尝试了其他 JPEG 文件,但没有成功。
这是我的 android.mk
文件,显示了 JPEG 和 DevIL 模块 fragment :
#libjpeg
include $(CLEAR_VARS)
LOCAL_MODULE := libjpeg
LOCAL_CFLAGS := -g -Dlinux -DFT2_BUILD_LIBRARY=1 -DPHYSFS_NO_CDROM_SUPPORT=1 -DAL_ALEXT_PROTOTYPES=1 -DHAVE_GCC_DESTRUCTOR=1 -DOPT_GENERIC -DREAL_IS_FLOAT
LOCAL_CPPFLAGS := ${LOCAL_CFLAGS}
LOCAL_C_INCLUDES := \
${JPEG_SRC_PATH}
LOCAL_SRC_FILES := \
${JPEG_SRC_PATH}jquant1.c \
${JPEG_SRC_PATH}jdtrans.c \
${JPEG_SRC_PATH}jerror.c \
${JPEG_SRC_PATH}wrppm.c \
${JPEG_SRC_PATH}jcparam.c \
${JPEG_SRC_PATH}jdmarker.c \
${JPEG_SRC_PATH}jidctfst.c \
${JPEG_SRC_PATH}jctrans.c \
${JPEG_SRC_PATH}cdjpeg.c \
${JPEG_SRC_PATH}jcomapi.c \
${JPEG_SRC_PATH}jmemansi.c \
${JPEG_SRC_PATH}jquant2.c \
${JPEG_SRC_PATH}wrtarga.c \
${JPEG_SRC_PATH}transupp.c \
${JPEG_SRC_PATH}jdmerge.c \
${JPEG_SRC_PATH}jdhuff.c \
${JPEG_SRC_PATH}jdmaster.c \
${JPEG_SRC_PATH}jcprepct.c \
${JPEG_SRC_PATH}jutils.c \
${JPEG_SRC_PATH}jccoefct.c \
${JPEG_SRC_PATH}jccolor.c \
${JPEG_SRC_PATH}jdatasrc.c \
${JPEG_SRC_PATH}jcdctmgr.c \
${JPEG_SRC_PATH}wrrle.c \
${JPEG_SRC_PATH}jcapimin.c \
${JPEG_SRC_PATH}jfdctfst.c \
${JPEG_SRC_PATH}rdrle.c \
${JPEG_SRC_PATH}wrbmp.c \
${JPEG_SRC_PATH}jdarith.c \
${JPEG_SRC_PATH}jidctint.c \
${JPEG_SRC_PATH}jcsample.c \
${JPEG_SRC_PATH}jaricom.c \
${JPEG_SRC_PATH}jdcolor.c \
${JPEG_SRC_PATH}jdapistd.c \
${JPEG_SRC_PATH}jdmainct.c \
${JPEG_SRC_PATH}jddctmgr.c \
${JPEG_SRC_PATH}jcmaster.c \
${JPEG_SRC_PATH}jfdctflt.c \
${JPEG_SRC_PATH}rdgif.c \
${JPEG_SRC_PATH}jcarith.c \
${JPEG_SRC_PATH}rdcolmap.c \
${JPEG_SRC_PATH}wrgif.c \
${JPEG_SRC_PATH}jdcoefct.c \
${JPEG_SRC_PATH}rdbmp.c \
${JPEG_SRC_PATH}jdapimin.c \
${JPEG_SRC_PATH}jdsample.c \
${JPEG_SRC_PATH}jidctflt.c \
${JPEG_SRC_PATH}rdppm.c \
${JPEG_SRC_PATH}rdtarga.c \
${JPEG_SRC_PATH}jchuff.c \
${JPEG_SRC_PATH}jcmarker.c \
${JPEG_SRC_PATH}jdpostct.c \
${JPEG_SRC_PATH}jfdctint.c \
${JPEG_SRC_PATH}jcinit.c \
${JPEG_SRC_PATH}jmemmgr.c \
${JPEG_SRC_PATH}jcmainct.c \
${JPEG_SRC_PATH}jcapistd.c \
${JPEG_SRC_PATH}rdswitch.c \
${JPEG_SRC_PATH}jdatadst.c \
${JPEG_SRC_PATH}jdinput.c
LOCAL_LDLIBS := -llog -L../lib -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := libphysfs
include $(BUILD_SHARED_LIBRARY)
#libdevil
include $(CLEAR_VARS)
LOCAL_MODULE := libdevil
LOCAL_CFLAGS := -g -Dlinux -DFT2_BUILD_LIBRARY=1 -DPHYSFS_NO_CDROM_SUPPORT=1 -DAL_ALEXT_PROTOTYPES=1 -DHAVE_GCC_DESTRUCTOR=1 -DOPT_GENERIC -DREAL_IS_FLOAT -fexceptions
LOCAL_CPPFLAGS := ${LOCAL_CFLAGS}
LOCAL_C_INCLUDES := \
${DEVIL_SRC_PATH}include \
${DEVIL_SRC_PATH}src-IL/include \
${DEVIL_SRC_PATH}src-ILU/include \
${JASPER_SRC_PATH}src/libjasper/include \
${PHYSFS_SRC_PATH} \
${PHYSFS_SRC_PATH}zlib123 \
${PNG_SRC_PATH} \
${MNG_SRC_PATH} \
${JPEG_SRC_PATH} \
${LCMS_SRC_PATH}include/ \
${TIFF_SRC_PATH}libtiff/ \
LOCAL_SRC_FILES := \
${DEVIL_SRC_PATH}src-IL/src/il_sun.c \
${DEVIL_SRC_PATH}src-IL/src/il_wdp.c \
${DEVIL_SRC_PATH}src-IL/src/il_doom.c \
${DEVIL_SRC_PATH}src-IL/src/il_jp2.c \
${DEVIL_SRC_PATH}src-IL/src/il_tpl.c \
${DEVIL_SRC_PATH}src-IL/src/il_size.c \
${DEVIL_SRC_PATH}src-IL/src/il_rle.c \
${DEVIL_SRC_PATH}src-IL/src/il_gif.c \
${DEVIL_SRC_PATH}src-IL/src/il_states.c \
${DEVIL_SRC_PATH}src-IL/src/il_psp.c \
${DEVIL_SRC_PATH}src-IL/src/il_devil.c \
${DEVIL_SRC_PATH}src-IL/src/il_convbuff.c \
${DEVIL_SRC_PATH}src-IL/src/il_ftx.c \
${DEVIL_SRC_PATH}src-IL/src/il_vtf.c \
${DEVIL_SRC_PATH}src-IL/src/il_iff.c \
${DEVIL_SRC_PATH}src-IL/src/il_lif.c \
${DEVIL_SRC_PATH}src-IL/src/il_pcx.c \
${DEVIL_SRC_PATH}src-IL/src/il_io.c \
${DEVIL_SRC_PATH}src-IL/src/il_files.c \
${DEVIL_SRC_PATH}src-IL/src/il_fastconv.c \
${DEVIL_SRC_PATH}src-IL/src/il_error.c \
${DEVIL_SRC_PATH}src-IL/src/il_main.c \
${DEVIL_SRC_PATH}src-IL/src/il_utx.cpp \
${DEVIL_SRC_PATH}src-IL/src/il_pcd.c \
${DEVIL_SRC_PATH}src-IL/src/il_neuquant.c \
${DEVIL_SRC_PATH}src-IL/src/il_dds.c \
${DEVIL_SRC_PATH}src-IL/src/il_dicom.c \
${DEVIL_SRC_PATH}src-IL/src/il_wal.c \
${DEVIL_SRC_PATH}src-IL/src/il_icon.c \
${DEVIL_SRC_PATH}src-IL/src/il_blp.c \
${DEVIL_SRC_PATH}src-IL/src/il_mp3.c \
${DEVIL_SRC_PATH}src-IL/src/il_header.c \
${DEVIL_SRC_PATH}src-IL/src/il_alloc.c \
${DEVIL_SRC_PATH}src-IL/src/il_sgi.c \
${DEVIL_SRC_PATH}src-IL/src/il_stack.c \
${DEVIL_SRC_PATH}src-IL/src/il_texture.c \
${DEVIL_SRC_PATH}src-IL/src/altivec_typeconversion.c \
${DEVIL_SRC_PATH}src-IL/src/il_targa.c \
${DEVIL_SRC_PATH}src-IL/src/il_bmp.c \
${DEVIL_SRC_PATH}src-IL/src/il_mdl.c \
${DEVIL_SRC_PATH}src-IL/src/il_pix.c \
${DEVIL_SRC_PATH}src-IL/src/il_pnm.c \
${DEVIL_SRC_PATH}src-IL/src/il_ilbm.c \
${DEVIL_SRC_PATH}src-IL/src/il_icns.c \
${DEVIL_SRC_PATH}src-IL/src/il_cut.c \
${DEVIL_SRC_PATH}src-IL/src/il_profiles.c \
${DEVIL_SRC_PATH}src-IL/src/il_hdr.c \
${DEVIL_SRC_PATH}src-IL/src/il_register.c \
${DEVIL_SRC_PATH}src-IL/src/il_exr.cpp \
${DEVIL_SRC_PATH}src-IL/src/il_iwi.c \
${DEVIL_SRC_PATH}src-IL/src/il_mng.c \
${DEVIL_SRC_PATH}src-IL/src/il_rot.c \
${DEVIL_SRC_PATH}src-IL/src/il_jpeg.c \
${DEVIL_SRC_PATH}src-IL/src/il_png.c \
${DEVIL_SRC_PATH}src-IL/src/il_pxr.c \
${DEVIL_SRC_PATH}src-IL/src/il_nvidia.cpp \
${DEVIL_SRC_PATH}src-IL/src/il_squish.cpp \
${DEVIL_SRC_PATH}src-IL/src/il_utility.c \
${DEVIL_SRC_PATH}src-IL/src/il_internal.c \
${DEVIL_SRC_PATH}src-IL/src/il_psd.c \
${DEVIL_SRC_PATH}src-IL/src/il_endian.c \
${DEVIL_SRC_PATH}src-IL/src/il_quantizer.c \
${DEVIL_SRC_PATH}src-IL/src/il_wbmp.c \
${DEVIL_SRC_PATH}src-IL/src/il_manip.c \
${DEVIL_SRC_PATH}src-IL/src/il_pic.c \
${DEVIL_SRC_PATH}src-IL/src/il_tiff.c \
${DEVIL_SRC_PATH}src-IL/src/il_pal.c \
${DEVIL_SRC_PATH}src-IL/src/il_dds-save.c \
${DEVIL_SRC_PATH}src-IL/src/il_raw.c \
${DEVIL_SRC_PATH}src-IL/src/il_convert.c \
${DEVIL_SRC_PATH}src-IL/src/il_dcx.c \
${DEVIL_SRC_PATH}src-IL/src/il_fits.c \
${DEVIL_SRC_PATH}src-IL/src/il_xpm.c \
${DEVIL_SRC_PATH}src-IL/src/il_bits.c \
${DEVIL_SRC_PATH}src-IL/src/altivec_common.c \
${DEVIL_SRC_PATH}src-IL/src/il_dpx.c \
${DEVIL_SRC_PATH}src-IL/src/il_rawdata.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_alloc.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_error.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_filter_rcg.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_filter.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_internal.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_main.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_manip.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_mipmap.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_noise.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_region.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_rotate.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_scale.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_scale2d.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_scale3d.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_scaling.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_states.c \
${DEVIL_SRC_PATH}src-ILU/src/ilu_utilities.c \
LOCAL_LDLIBS := -llog -L../lib -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := \
libjasper \
libpng \
libmng \
libjpeg \
liblcms \
libphysfs \
libtiff
include $(BUILD_SHARED_LIBRARY)
我的 C++ 文件的模块在文件 android.mk
中:
#mylib
include $(CLEAR_VARS)
LOCAL_MODULE := libmylib
LOCAL_CFLAGS := -g -Dlinux -DFT2_BUILD_LIBRARY=1 -DPHYSFS_NO_CDROM_SUPPORT=1 -DAL_ALEXT_PROTOTYPES=1 -DHAVE_GCC_DESTRUCTOR=1 -DOPT_GENERIC -DREAL_IS_FLOAT -fexceptions
LOCAL_CPPFLAGS := ${LOCAL_CFLAGS}
LOCAL_C_INCLUDES := \
${DEVIL_SRC_PATH}include \
${DEVIL_SRC_PATH}src-IL/include \
${DEVIL_SRC_PATH}src-ILU/include \
${JASPER_SRC_PATH}src/libjasper/include \
${PHYSFS_SRC_PATH} \
${PHYSFS_SRC_PATH}zlib123 \
${PNG_SRC_PATH} \
${MNG_SRC_PATH} \
${JPEG_SRC_PATH} \
${LCMS_SRC_PATH}include/ \
${TIFF_SRC_PATH}libtiff/ \
LOCAL_SRC_FILES := com_myproject_MainActivity.cpp
LOCAL_LDLIBS := -llog -lGLESv2
LOCAL_STATIC_LIBRARIES := \
libjasper \
libpng \
libmng \
libjpeg \
liblcms \
libphysfs \
libtiff \
libdevil \
include $(BUILD_SHARED_LIBRARY)
这是调用 DevIL 的 com_myproject_MainActivity.cpp
文件,还链接到 Android 部分:
//#include "com_myproject_MainActivity.h"
#include <string.h>
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifdef HAVE_CONFIG_H
#include <devil-1.7.8/include/IL/config.h>
#endif /* HAVE_CONFIG_H */
#include <devil-1.7.8/include/IL/il.h>
#include <devil-1.7.8/include/IL/ilu.h>
#include <devil-1.7.8/include/IL/ilut.h>
/* We would need ILU just because of iluErrorString() function... */
/* So make it possible for both with and without ILU! */
#ifdef ILU_ENABLED
#include <devil-1.7.8/include/IL/ilu.h>
/*#define PRINT_ERROR_MACRO printf("Error: %s\n", iluErrorString(Error))
#else /* not ILU_ENABLED */
#define PRINT_ERROR_MACRO printf("Error: 0x%X\n", (unsigned int)Error)
#endif /* not ILU_ENABLED */
extern "C" {
JNIEXPORT jint JNICALL Java_com_myproject_MainActivity_convert
(JNIEnv * env, jclass c, jstring file, jstring file2){
//'file' is the path to incoming file, and 'file2' is the path to the file to be created.
const char * cfile = env->GetStringUTFChars(file, NULL);
const char * cfile2 = env->GetStringUTFChars(file2, NULL);
ILuint ImgId ;
ILenum Error;
// Initialize DevIL.
ilInit();
#ifdef ILU_ENABLED
iluInit();
#endif
int x= 0;
// Generate the main image name to use.
ilGenImages(1, &ImgId);
ilBindImage(ImgId);
ILboolean result = ilLoadImage(cfile); //Loads the file. Returns boolean.
if (result == true) //x is 1 if operation was successful
{
x = 1;
}
else
{
ILenum err = ilGetError() ;
x = err; //x becomes error number if fails e.g 1506 if there is an error in LIB_JPEG
//printf( "string is %s\n", ilGetString( err ) );
}
/*ilEnable(IL_FILE_OVERWRITE);
ILboolean result2 = ilSaveImage(cfile2);
if( result2 == true )
{
x = 2;
}
else
{
ILenum err = ilGetError() ;
x = err;
//printf( "string is %s\n", ilGetString( err ) );
}
ilDeleteImages(1, &ImgId);*/
env->ReleaseStringUTFChars(file, cfile);
env->ReleaseStringUTFChars(file2, cfile2);
return x;
}
};
最佳答案
在构建 DevIL 时指定 -DFT2_BUILD_LIBRARY=1
库本身。这是正确的。
但是,当您构建自己的与 DevIL 链接的应用程序时,您需要再次指定标志 -DFT2_BUILD_LIBRARY=1
。这意味着 DevIL 头文件会被误导,认为它们是为库本身而不是为第三方应用程序构建的。
关于android - 使用 DevIL 时出现错误 'IL_LIB_JPEG_ERROR 1506',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045362/
我正在使用 OpenGL,我可以正确加载 tga 文件,但由于某些原因,当我渲染 jpg 文件时,我看不到它们。 这就是图像应该看起来的样子—— 这就是它的样子..为什么它被拉伸(stretch)了?
好吧,事情是这样的。我有我需要的所有 IL 文件,即 DevIL.dll DevIL.lib ILU.dll ILU.lib ILUT.dll ILUT.lib config.h config.h.i
此代码示例正确吗?为什么有些_data具有相同的值?我如何获取 gif 图像中包含的每个动画帧的指针? _num = ilGetInteger(IL_NUM_IMAGES)+1; for (int i
链接这些库就像链接任何其他库一样。 但是当我运行我的项目时,我的问题出现了,我没有收到链接器错误,但我的错误是关于“DLL”的 我明白了 “该程序无法启动,因为您的计算机缺少 DevIL.dll。请尝
我想从原始纹理数据创建 devIL 图像,但我似乎找不到实现它的方法。正确的方法似乎是 ilLoadL with IL_RAW,但我无法让它工作。 here 中的文档说数据中应该有 13 字节的 he
我希望能够将 devIL 库用于我正在处理的项目,但由于某些原因我无法正确设置它。在我的项目中,我有: #include #include #include 如果我不调用任何 devIL 函数,
我正在使用 Visual Studio 2010,C++。 我想做的是从加载的图像中检索像素数据(特别是 RGB 颜色),然后在各种检查中使用它。目前,我想遍历所有数据并能够检测像素何时为某种颜色(特
我正在尝试检查图像中像素的 RGB 分量,但我不知道该怎么做。 import Data.Array.Repa import Data.Array.Repa.IO.DevIL import Data.W
在花费数小时寻找一种将图像添加到用 C++ 编写的 openGL 应用程序的简单方法之后,我惨遭失败。显然还有许多其他人也这样做了。 我是 OpenGL 的新手,我使用 DevIL 使用 OpenGL
我想将图像加载到我的应用程序中,但出现错误: http://img510.imageshack.us/img510/5814/blad07864.png 这是这个应用程序的代码: #include
我遇到一个问题,我想使用 DevIL 作为字节数组加载的 .png 图像没有 alpha channel 。 全黑图像也显示为 alpha channel 值为 0。 这是我的图片加载函数: DevI
只是阅读 DevIL 手册 here .也让我想起了glGenBuffers .为什么他们选择让每个库的用户生成名称(DevIL 手册第 6 页),而不是为您自己的图像/缓冲区等指定名称? 我想也许他
我只得到立方体贴图中的第一个面。我如何访问/加载其他的? 在 Ubuntu Natty 上使用 DevIL 1.7.8:我使用 ilLoad 或 ilLoadImage 加载一个包含 6 个纹理的 d
我正在尝试使用 Devil 将纹理加载到 OpenGL 中,但在调用此构造函数时出现段错误 Sprite::Sprite(const char *path){ ILuint tex = 0;
我正在尝试编译使用 OpenGL、SDL 和 IL aka DevIL aka OpenIL 库的示例源代码。 OpenGL 和 SDL 可用作 native 框架,但 DevIL 不是。所以这就是我
我正在使用 DevIL 编写 C++ OpenGL 项目,但在尝试找出如何加载图像以用作纹理时出现编译时错误。 到目前为止我有这个 //Declarations const char* filenam
首先,我正在使用 Fedora 并学习 OpenGL。我想稍微使用 DevIL,所以我从官方存储库安装了 DevIL 和 DevIL-ILUT 包。我有一个用于加载和呈现可用文件的测试代码,所以我决定
我的文件路径是这样定义的: const char* GROUND_TEXTURE_FILE = "objects/textures/grass.jpg"; 这是我用来加载图像的函数: bool loa
我目前正在将我的游戏从 Windows 移植到 Linux。 Debian(home) 和 Fedora(uni)。它构建良好,但在运行时预期 加载共享库时出错:libIL.so.1。 首先,.1 是
我正在编写一个使用 DevIL 的 Android 应用程序用于图像处理。我从 this project 得到了 DevIL 及其依赖库的端口.我编辑并提取了我需要的东西。它编译得很好,库也可以工作,
我是一名优秀的程序员,十分优秀!