【视频/图像编解码】OpenJPEG在windows 10+VS 2013下的环境配置

因项目需要,需要在windows(64位)和linux的环境下配置OpenJPEG。

官网引出的github链接如下:https://github.com/uclouvain/openjpeg/releases/tag/v2.3.0

该网站windows下64位版本有两种

前两者自然是已编译过,下载即可在bin文件夹中使用opj_compress.exe,opj_decompress.exe,opj_dump.exe的版本,但是不含源码。如果你想对源码进行改动,请选择Source code (zip)。所以我自然是下载后者。在这里要说明,OpenJPEG自身并不支持PNG,TIF的压缩编码,如果需要,则应单独安装第三方库。但是在这个已编译好的版本中,这些都是包含进去的。在源码中则需要自己手动安装第三方库。

对于源码的编译,可以在解压后,根据README.md中介绍的参考文档来指导进行,链接如下:https://github.com/uclouvain/openjpeg/blob/master/INSTALL.md

初始介绍windows下应当使用minGW编译,minGW在编译安装x264时使用过,亲测也是可以编译OpenJPEG的,简单的说也就是打开minGW(打开msys.bat)后,根据后续指令即可。但是这里我们电脑中的主编译为Visual Studio 2013,因此可以根据文档后面的内容来编译:

首先建立build文件夹:

mkdir build
cd build

之后使用cmake编译:

cmake -G "Visual Studio 12 2013" -DCMAKE_BUILD_TYPE:string="Release" -DBUILD_SHARED_LIBS:bool=on BUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX:path="%USERPROFILE%" -DCMAKE_LIBRARY_PATH:path="%USERPROFILE%" -DCMAKE_INCLUDE_PATH:path="%USERPROFILE%\include" ..

其中%USERPROFILE%可以替换成自己的路径(实测并不会有什么文件生成进去,所以bool=on后其实可以不要,但是要注意最后的空格+..),BUILD_THIRDPARTY:BOOL=ON是开启第三方库,无论第三方库(libpng,libtiff等)自己电脑中是否存在,先开启了。

cmake完后build文件夹下便会出现OPENJPEG.sln工程文件。在windows环境下,不需要生成Makefiles文件,直接通过VS 2013打开.sln工程文件编译生成.exe就好。

在安装过程中会出现几个第三方库missing的警告,但是仍然可以配置成功,只是不能压缩png、tiff格式的图片文件了。

在这里也希望能集思广益,解压OpenJPEG后有thirdparty文件夹,但是单独cmake这些自带的第三方库后,再cmake OpenJpeg仍然会missing;后来我想到是否可以自己在网上下载好第三方库得到lib文件后加入到cmake完之后的OPENJPEG.sln工程中,但是也失败了,并且安装libtiff时极度痛苦,网上的教程一般是下图所示:

但是会各种报错,事实上在没有安装jpeg库下,不止需要更改/*#undef JPEG_SUPPORT*/,还需要更改/* #undef OJPEG_SUPPORT*/,给上链接:https://blog.csdn.net/u012176176/article/details/51201978,安装libtiff成功后截图如下:

说了这么多,依旧加不进去第三方库。。。所以大家有妙招的还请留言。

接下来是.sln工程文件的一些细小配置了。

工程项目还是很清晰的。生成项目会在build文件夹上一层的bin文件夹中的Debug或Release文件夹中生成.exe文件。对于F5调试,需要进行如下配置:

首先将opj_compress设为启动项,否则调试时会报ALL_BUILD不存在的错,接下来对于Debug和Release,分别做如下配置:

Debug:

1. 配置属性->调试->命令参数:-i yourfile.raw -o youfile_encode.j2k -F 12000,5000,3,8,u    (对于raw文件需要-F,bmp不需要,可以参考OpenJPEG用法文档)

2. 配置属性->调试->工作目录:D:/openjpeg/openjpeg-2.3.0/build/bin/Debug/    (路径视情况而定,如果写相对路径不要写错)

3. 配置属性->C++->常规->调试信息格式:用于“编辑并继续”的程序数据库 (/ZI)

4. 配置属性->C++->优化->优化:已禁用 (/Od)

5. 链接器->调试->生成调试信息:是 (/DEBUG)

Release:

1. 配置属性->调试->命令参数:-i yourfile.raw -o youfile_encode.j2k -F 12000,5000,3,8,u    (对于raw文件需要-F,bmp不需要,可以参考OpenJPEG用法文档)

2. 配置属性->调试->工作目录:D:/openjpeg/openjpeg-2.3.0/build/bin/Release/    (路径视情况而定,如果写相对路径不要写错)

3. 配置属性->C++->常规->调试信息格式:程序数据库 (/Zi)

4. 配置属性->C++->优化->优化:已禁用 (/Od)

5. 链接器->调试->生成调试信息:是 (/DEBUG)

至此,OpenJPEG在windows+VS 2013下的配置已经全部完毕,唯一留有遗憾的就是第三方库的添加,等待完善。
附上OpenJPEG使用文档:

https://github.com/uclouvain/openjpeg/wiki/DocJ2KCodec

发布了7 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u013040591/article/details/79743163