在 Linux 下使用 CxImage 其实不太常见(它最早是 Windows/MFC 的库),但在 Linux 里也是可以编译和使用的,主要是把它当作一个静态或动态图像处理库来用。下面我按实际可操作步骤给你详细说明。
CxImage 是一个 C++ 图像库,支持:
⚠️ 注意:
在 Linux 下手动编译 CxImage 为静态库,然后链接到你的程序
CxImage 依赖以下第三方库:
sudo apt update
sudo apt install build-essential
sudo apt install libjpeg-dev libpng-dev libtiff-dev libgif-dev
如果是 CentOS / Rocky / Alma:
sudo yum groupinstall "Development Tools"
sudo yum install libjpeg-devel libpng-devel libtiff-devel giflib-devel
官方版本(较老):
wget https://github.com/oscar-broman/cximage/archive/refs/heads/master.zip
unzip cximage-master.zip
cd cximage-master
或直接用 git:
git clone https://github.com/oscar-broman/cximage.git
cd cximage
有些版本已经带 Makefile,有些没有。
如果你看到 Makefile,直接:
make
如果没有 Makefile:
g++ -c -fPIC \
*.cpp \
-I. \
-Ijpeg \
-Ipng \
-Itiff \
-Ilzma \
-Ijbig \
-Izlib
然后打包成静态库:
ar rcs libcximage.a *.o
project/
├── main.cpp
├── include/
│ └── CxImage/
│ └── ximage.h
├── lib/
│ └── libcximage.a
main.cpp#include <iostream>
#include "CxImage/ximage.h"
int main() {
CxImage image;
if (!image.Load("test.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "Load image failed" << std::endl;
return -1;
}
image.Save("test.png", CXIMAGE_FORMAT_PNG);
std::cout << "Convert success" << std::endl;
return 0;
}
g++ main.cpp \
-I./include \
-L./lib \
-lcximage \
-ljpeg -lpng -ltiff -lz \
-std=c++11 \
-o test
CxImage.h: No such file or directory-I 指定正确路径undefined reference to CxImage::Loadwchar_twindows.h| 需求 | 推荐 |
|---|---|
| 简单图像读写 | stb_image |
| 工业/视频 | OpenCV |
| 命令行处理 | ImageMagick |
| 轻量 C | libpng + libjpeg |
Linux 下使用 CxImage 需要:
- 安装图像依赖库
- 手动编译 CxImage 为
.a或.so- 使用 C++ 链接并修正平台相关问题
如果你愿意,可以告诉我:
我可以给你 一套完全可用的 Makefile 或 CMake 示例 ✅