基于libjpeg-turbo,openjpeg 实现对jpeg,jpeg2000(j2k)图像的内存编解码(C++11封装)。
NOTE:
如果你只是想实现JPEG图像的内存解码,其实不需要这么复杂的,CImg 就可以解决你的问题,参见我的博客:
《CImg:插件(plugin)使用说明塈实现JPEG图像内存编码/解码》
Conan是一个面向 C 和 C++ 开发人员的软件包管理器,Conan 可以为不同的构建配置管理任意数量的不同二进制文件,包括不同的架构、编译器、编译器版本、运行时、C++ 标准库等。它可以大大降低项目在跨平台构建的复杂度,提高工作效率
从 jpegwrapper-1.1.0
版本开始,jpegwrapper支持conan构建,所以构建需要conan 2.x支持。如果安装conan 参见 《conan入门(一):conan 及 JFrog Artifactory 安装_conan教程-CSDN博客》
如果需要非conan支持的代码,请切换到jpegwrapper-1.0.0
版本。
git clone https://gitee.com/l0km/jpegwrapper.git
要求cmake (3.15以上版本)
Visual Studio 2015编译,windows CMD下执行make_msvc_project.bat
使用MinGW编译,执行mingw_build.bat,生成32还是64位程序取决于MinGW编译器版本,对于SJLJ
版本编译器可以同时生成32/64位库。
linux下编译参见脚本 gnu_build.sh,编译时可能需要根据自己linux系统的实际情况修改脚本。
生成的静态库在release文件夹下
linux下编译测试程序 需要libX11支持,如果没有,请安装,例如(CentOS):
sudo yum install -y libX11-devel
核心代码很少:
j2k_mem.h:jpeg图像内存读写实现
j2k_mem.h:jpeg2000图像内存读写实现
CImgWrapper.h:基于CImg进一步对jpeg,j2k图像读写做便利化封装,因为CImg.h体积很大,所以使用该头文件,会导致编译时间较长
参见附带的测试代码 testCImg.cpp
cmake查找 jpegwrapper 库的示例:
# CONFIG模式查找 jpegwrapper 依赖库
# 需要在 CMAKE_MODULE_PATH 指定 FindTurboJPEG.cmake的位置,本例中的位置在项目根目录下/cmake/Modules
# 需要在 CMAKE_PREFIX_PATH 指定 jpegwrapper以及其依赖库turbojpeg,openjpeg的安装位置
find_package(jpegwrapper CONFIG REQUIRED)
cmake脚本中引用 jpegwrapper 库的示例:
# 引用jpegwrapper静态库
target_link_libraries(test_jpegwrapper jpegwrapper::jpegwrapper)
# 增加 openjpeg include
target_include_directories (test_jpegwrapper PUBLIC ${OPENJPEG_INCLUDE_DIRS})
cmake脚本中引用 jpegwrapper 库的完整示例参见 test/CMakeLists.txt
创建调用示例的VS2015工程的过程参见 test/make_msvc_project.bat
生成unix Makefile过程参见: test/make_unix_makefile.sh
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。