在Ubuntu系统上使用CXImage前,需先安装开发工具链和图像处理依赖库,确保编译环境完整。打开终端,执行以下命令:
sudo apt-get update # 更新软件包列表
sudo apt-get install build-essential # 安装GCC编译器、make等基础工具
sudo apt-get install libpng-dev # 安装PNG格式支持库
sudo apt-get install libjpeg-dev # 安装JPEG格式支持库
sudo apt-get install libgif-dev # 安装GIF格式支持库(可选,根据需求添加)
以上命令将安装CXImage编译所需的工具及常见图像格式的依赖库。
CXImage的源码托管在GitHub仓库,推荐使用git
克隆最新版本(以官方仓库为例):
git clone https://github.com/antaresware/cximage.git # 克隆仓库到本地
cd cximage # 进入源码目录
若需切换到稳定分支(如master
),可执行:
git checkout master
CXImage使用CMake
作为构建系统,步骤如下:
mkdir build # 创建构建目录(避免污染源码目录)
cd build # 进入构建目录
cmake .. # 生成Makefile(自动检测系统环境)
make # 编译源码(耗时取决于系统性能)
sudo make install # 安装库文件到系统目录(默认路径:/usr/local/)
编译过程中若出现依赖缺失错误,需根据提示安装对应库(如libtiff-dev
等)。
安装完成后,需让编译器找到CXImage的头文件和库文件。编辑~/.bashrc
(或~/.zshrc
,根据shell类型)文件,添加以下内容:
export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH # 头文件路径
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH # 库文件路径
保存后执行source ~/.bashrc
使配置生效。
以下代码演示如何加载、保存图像(支持JPEG、PNG等格式):
#include <iostream>
#include <cximage.h>
int main() {
// 创建CXImage对象
CXImage image;
// 加载图像(自动识别格式,也可指定CXIMAGE_FORMAT_JPG等)
if (!image.Load("input.jpg")) {
std::cerr << "Failed to load image!" << std::endl;
return -1;
}
// 输出图像信息
std::cout << "Loaded image: " << image.GetWidth() << "x" << image.GetHeight()
<< ", Format: " << image.GetFormatName() << std::endl;
// 转换为PNG格式并保存
if (!image.Save("output.png", CXIMAGE_FORMAT_PNG)) {
std::cerr << "Failed to save image!" << std::endl;
return -1;
}
// 释放资源(CXImage析构时会自动清理)
return 0;
}
使用g++
编译时,需链接cximage
库:
g++ your_project.cpp -o your_program -lcximage
若头文件不在默认路径,需添加-I
参数指定路径(如-I/usr/local/include
);若库文件不在默认路径,需添加-L
参数(如-L/usr/local/lib
)。
CXImage支持丰富的图像处理功能,以下是常用操作的代码片段:
int width = image.GetWidth(); int height = image.GetHeight();
image.ChangeFormat(CXIMAGE_FORMAT_BMP);
(将当前图像转为BMP格式)image.Resample(width, height, FILTER_BOX);
(使用BOX滤波器缩放)image.Rotate(angle, CXIMAGE_INTERPOLATION_BILINEAR);
(旋转指定角度,双线性插值)image.Crop(x, y, width, height);
(从(x,y)位置裁剪指定尺寸)。undefined reference
错误,需检查是否遗漏依赖库(如libpng
、libjpeg
);cmake
的-DCMAKE_INSTALL_PREFIX
参数自定义(如cmake -DCMAKE_INSTALL_PREFIX=/usr ..
);