在 Linux 下,CxImage 是一个比较老的 C++ 图像处理库(Windows 起源),在 Linux 上使用需要手动编译 + 测试。下面我按从编译到运行测试给你一个完整流程,适合新手。
先确认基础开发环境:
sudo apt update
sudo apt install build-essential g++ make cmake
如果你用的是 CentOS / RHEL:
sudo yum groupinstall "Development Tools"
CxImage 官方已多年未更新,常见方式:
git clone https://github.com/pedro--costa/cximage.git
cd cximage
或:
git clone https://github.com/kevinvandeput/cximage.git
不同版本结构略有区别,但核心是
CxImage/目录
mkdir build
cd build
cmake ..
make
如果成功,会生成:
libcximage.a
或 .so(取决于配置)
cd CxImage
g++ -c *.cpp -I. -I../zlib -I../jpeg -I../png
ar rcs libcximage.a *.o
需要依赖:
安装依赖:
sudo apt install libjpeg-dev libpng-dev zlib1g-dev
#include <iostream>
#include "CxImage.h"
int main() {
CxImage image;
if (!image.Load("test.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "Load image failed!" << std::endl;
return -1;
}
std::cout << "Image loaded: "
<< image.GetWidth() << "x"
<< image.GetHeight() << std::endl;
image.GrayScale();
image.Save("test_gray.jpg", CXIMAGE_FORMAT_JPG);
std::cout << "Gray image saved!" << std::endl;
return 0;
}
g++ test_cx.cpp -o test_cx \
-I./CxImage \
-L./build \
-lcximage \
-ljpeg -lpng -lz
./test_cx
✅ 正确输出示例:
Image loaded: 800x600
Gray image saved!
CxImage.h: No such file or directory
✅ 解决:
-I/path/to/CxImage
CxImage::Loadundefined reference to CxImage::Load(...)
✅ 原因:
libcximage✅ 正确顺序:
g++ test.cpp -lcximage -ljpeg -lpng -lz
⚠️ 注意:
如果你只是想在 Linux 下做图像处理,更推荐:
| 库 | 说明 |
|---|---|
| OpenCV | 工业级、跨平台 |
| FreeImage | 更接近 CxImage 风格 |
| stb_image | 单头文件,轻量 |
| libpng + libjpeg | 底层但稳定 |
OpenCV 示例:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("test.jpg");
cvtColor(img, img, COLOR_BGR2GRAY);
imwrite("gray.jpg", img);
}
✅ CxImage 在 Linux 下可以测试,但需要手动编译
✅ 核心步骤:
.a / .so如果你愿意,我可以:
你可以直接贴你的 错误信息 或 Linux 发行版。