CharLS 开源项目教程
charlsCharLS, a C++ JPEG-LS library implementation项目地址:https://gitcode.com/gh_mirrors/ch/charls
1. 项目的目录结构及介绍
CharLS 项目的目录结构如下:
charls/
├── CMakeLists.txt
├── LICENSE
├── README.md
├── include/
│ └── charls/
│ ├── charls.h
│ ├── charls_advanced.h
│ └── charls_version.h
├── src/
│ ├── charls_jpegls_encoder.cpp
│ ├── charls_jpegls_encoder.h
│ ├── charls_jpegls_decoder.cpp
│ ├── charls_jpegls_decoder.h
│ ├── default_traits.h
│ ├── jpeg_stream_reader.cpp
│ ├── jpeg_stream_reader.h
│ ├── jpeg_stream_writer.cpp
│ ├── jpeg_stream_writer.h
│ ├── lookup_table.h
│ ├── process_line.h
│ ├── public_types.h
│ ├── scan_analyzer.h
│ ├── static_fix_size_queue.h
│ ├── util.h
│ └── version.h
├── test/
│ ├── CMakeLists.txt
│ ├── charls_test.cpp
│ ├── charls_test.h
│ ├── charls_test_all.cpp
│ ├── charls_test_all.h
│ ├── charls_test_config.h
│ ├── charls_test_fixture.cpp
│ ├── charls_test_fixture.h
│ ├── charls_test_helper.cpp
│ ├── charls_test_helper.h
│ ├── charls_test_logging.h
│ ├── charls_test_reference_io.cpp
│ ├── charls_test_reference_io.h
│ ├── charls_test_transform.cpp
│ ├── charls_test_transform.h
│ ├── charls_test_unit.cpp
│ ├── charls_test_unit.h
│ ├── charls_test_utilities.cpp
│ ├── charls_test_utilities.h
│ ├── main.cpp
│ └── test_data/
└── tools/
├── CMakeLists.txt
├── charlstest.cpp
└── charlstest.h
目录结构介绍
include/
:包含项目的头文件。src/
:包含项目的源代码文件。test/
:包含项目的测试代码文件。tools/
:包含项目的工具代码文件。
2. 项目的启动文件介绍
CharLS 项目的启动文件是 main.cpp
,位于 test/
目录下。这个文件是测试程序的入口点,负责初始化和运行测试用例。
// test/main.cpp
#include "charls_test_all.h"
#include "charls_test_logging.h"
int main()
{
const int result = CharLSTestAll::Execute();
return result;
}
3. 项目的配置文件介绍
CharLS 项目没有显式的配置文件,其配置主要通过 CMake 构建系统进行管理。主要的配置文件是 CMakeLists.txt
,位于项目根目录和各个子目录中。
根目录下的 CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
project(CharLS CXX)
set(CHARLS_VERSION_MAJOR 2)
set(CHARLS_VERSION_MINOR 3)
set(CHARLS_VERSION_PATCH 0)
set(CHARLS_VERSION "${CHARLS_VERSION_MAJOR}.${CHARLS_VERSION_MINOR}.${CHARLS_VERSION_PATCH}")
include(GNUInstallDirs)
include(CTest)
add_subdirectory(src)
add_subdirectory(test)
add_subdirectory(tools)
install(FILES LICENSE README.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
src/
目录下的 CMakeLists.txt
set(CHARLS_SRC_FILES
charls_jpegls_encoder.cpp
charls_jpegls_encoder.h
charls_jpegls_decoder.cpp
charls_jpegls_decoder.h
charlsCharLS, a C++ JPEG-LS library implementation项目地址:https://gitcode.com/gh_mirrors/ch/charls