Tag: libjpeg

移位负的有符号值是不确定的

我主演原始的JPEG标准( ITU 81 ),特别是图F.12:扩展V中解码值的符号位 : 作为参考, SLL术语表示: shift left logical operation (参见PDF的第15页) 现在着名的libjpeg实现决定以这种方式实现它(非常直接的转录): /* * Figure F.12: extend sign bit. * On some machines, a shift and add will be faster than a table lookup. */ #ifdef AVOID_TABLES #define HUFF_EXTEND(x,s) ((x) < (1<<((s)-1)) ? (x) + (((-1)<<(s)) + 1) : (x)) #else #define HUFF_EXTEND(x,s) ((x) […]

在运行时找到libjpeg版本(或其他防止中止的方法)?

我的应用程序使用libjpeg来读/写JPEG图像。 一切正常 最近我的应用程序开始崩溃时尝试编写JPEG图像时出现错误“错误的JPEG库版本:库是80,调用者期望62”,当调用jpeg_create_compress()时(因此崩溃似乎是libjpeg方面的故意中止而不是段错误) 一些调查表明,我的应用程序确实针对libjpeg-62头文件(安装在/ usr / local / include中)进行编译,然后使用libjpeg-80中的dylib(安装在/ usr / lib / i386-linux-中) GNU /)。 删除libjpeg-62头文件并使用libjpeg-80头文件编译解决了这个问题。 但是,我希望有一个解决方案,可以让我防止这样的崩溃,即使一些最终用户安装了不同于我的应用程序编译的库版本。 1)如果我能以某种方式说服libjpeg即使在致命错误上也不会中止,那将是很好的; 例如: jpeg_abort_on_error(0); 2)或者进行非中止检查是否安装了正确的库: if(!jpeg_check_libraryversion()) return; 3)如果开箱即不可行,我可以根据运行时检测到的compat版本手动检查编译时API版本(JPEG_LIB_VERSION)。 不幸的是,我无法在API中找到任何允许我使用这些方法的东西。 我是盲人还是我需要完全不同的东西?

我在哪里可以找到IJG libjpeg的好教程

我需要对这个库做一些工作,我发现http://apodeline.free.fr/DOC/libjpeg/libjpeg.html上的文档有缺陷(不完整的函数签名等)。 有没有人知道其他一些方面或有一些示例代码说明常见的任务? [编辑]我也用一个例子找到了这个问题 ,但其他任何一个都会有所帮助。

libjpeg API和参考

我无法找到一个详细介绍函数调用和返回值的API …标题也不是很干净… 我找到了大量的例子,但我对error handling(返回值)很感兴趣。 我是否接近这个错误,因为我正在试图找到像这个知名图书馆的function列表那样基本的东西。

libjpeg输出缩放

libjpeg是否允许/有例程来缩放输出图像? 我有一个图像需要在保存和加载时resize,在输入上提供width1,height1并在输出上获取width2,height2,我真的不能使用任何外部。

使用libjpeg写入内存缓冲区而不是文件?

我发现这个函数使用libjpeg写入文件: int write_jpeg_file( char *filename ) { struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; /* this is a pointer to one row of image data */ JSAMPROW row_pointer[1]; FILE *outfile = fopen( filename, “wb” ); if ( !outfile ) { printf(“Error opening output jpeg file %s\n!”, filename ); return -1; } cinfo.err = jpeg_std_error( &jerr ); […]