我尝试使用version 9中现有的众所周知的“jpeglib”。
概述:我是使用 MS Visual C ++ 2010 Express 的C编程入门者,最后阅读了一本C-book。我的目标是将RGB(.bmp)文件压缩为JPEG。所以我下载了 jpeglib (v9),阅读了所有安装等* .txt文件。可以编译C文件以获取 cjpeg.exe , djpeg.exe , jpeg.lib 等等。
在成功之后,我尝试使用 example.c 深入了解jpeg并控制压缩。 - >那没起效。然后我尝试使用OpenCV中包含的jpeglib。相同的非工作结果,而OpenCV代码示例编译成功。
我搜索了大量的示例,问题解决方案以及如何使用jpeglib的提示。我在这里找到的最有用的信息。但是在结果中我仍然无法编译自己的jpeg-tool或example.c(重写write_JPEG_file()
函数)。
问题:当其他程序员只在代码中使用#include "jpeglib.h"
成功运行jpeg函数时,基础知识可能出错了吗?对我来说包括这个文件似乎还不够。因此我必须要求你并重新启动一个一岁Question,这也没有帮助解决我的问题。由于多次尝试解决这些问题,我无法向您提供具体的错误消息。
以下是我目前使用OpenCV 2.4.6的 MS-VC ++ 2010配置:
最后我读过一些帖子:
如果缺少某些东西你想知道我会尽力添加这些信息!
编辑 - 一些错误消息:
1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""unsigned char * image_buffer" (?image_buffer@@3PAEA)".
1>jpeg_coder.obj : error LNK2001: unresolved external symbol ""int image_height" (?image_height@@3HA)".
1>jpeg_coder.obj : error LNK2001: unresolved external symbol """int image_width" (?image_width@@3HA)".
第一个符号应在jpeglib.h
中作为JSAMPLE FAR *JSAMPROW
进行输入,
第二和第三个在rdjpgcom.c
中定义为unsigned int image_height, image_width;
也许,运气好的话,我想出了让jpeglib运行需要做些什么。在当前状态下,我必须检查并仔细检查我的问题解决方案是否正确。在这一点上非常感谢你对我的问题的关注。一旦我确定解决方案,我会发布它。
问题解决方案:我没有正确设置OpenCV以使用jpeglib。我犯的错误是链接错误的* .lib文件。正确的链接文件是libjpegd.lib
。太糟糕了,jpeglib v6.2包含在OpenCV 2.4.6而不是v9中。添加HAVE_JPEG
以在OpenCV中使用jpeglib函数的提示我完全忽略了。 目前问题已解决。
答案 0 :(得分:0)
问题解决方案:我没有正确设置OpenCV以使用jpeglib。我犯的错误是链接错误的* .lib文件。
正确的链接文件是libjpegd.lib
。
太糟糕了,jpeglib v6.2包含在OpenCV 2.4.6而不是v9中。添加HAVE_JPEG
以在OpenCV中使用jpeglib函数的提示我完全忽略了。感谢所有试图解决这个问题的人。 目前问题已解决。