在 Debian 下使用 CxImage,一般指 CxImage 图像处理库(C++,支持 BMP/JPG/PNG/GIF/TIF 等)。下面按常见用法给你一个完整说明。
❌ 不可以
apt search cximage
# 无结果
CxImage 不是 Debian 官方仓库软件,只能在 Debian 上手动编译使用。
sudo apt update
sudo apt install build-essential g++ make cmake git
如果你要用 JPEG/PNG/TIFF:
sudo apt install libjpeg-dev libpng-dev libtiff-dev zlib1g-dev
官方已停止维护,常用的是镜像或 fork:
git clone https://github.com/pedrohms/CxImage.git
cd CxImage
如果 GitHub 访问慢,可以搜:
CxImage mirror github
CxImage 是 Windows 风格工程,在 Linux 下需要手动处理。
在 CxImage/ 目录下新建 Makefile,例如:
CXX = g++
CXXFLAGS = -std=c++11 -I.
SRC = CxImage.cpp CxImageBMP.cpp CxImageJPG.cpp CxImagePNG.cpp CxImageGIF.cpp
OBJ = $(SRC:.cpp=.o)
libcximage.a: $(OBJ)
ar rcs $@ $(OBJ)
clean:
rm -f *.o *.a
编译:
make
生成:
libcximage.a
#include "CxImage.h"
int main() {
CxImage img;
if (!img.Load("in.jpg", CXIMAGE_FORMAT_JPG)) {
return -1;
}
img.Save("out.png", CXIMAGE_FORMAT_PNG);
return 0;
}
g++ test.cpp -o test \
-I./CxImage \
./CxImage/libcximage.a \
-ljpeg -lpng -lz
运行:
./test
long long / windows.h 错误原因:CxImage 有 Windows API 依赖
✅ 解决:
#ifdef _WIN32 包裹 Windows 代码Linux 下默认 UTF-8,一般没问题
Windows 下才需要 GBK 转换
如果你是 新项目,建议替代方案:
| 需求 | 推荐 |
|---|---|
| C++ | OpenCV |
| 轻量 | stb_image |
| 快速 | FreeImage |
| 完全跨平台 | OpenCV + C++ |
sudo apt install libopencv-dev
#include <opencv2/opencv.hpp>
cv::Mat img = cv::imread("in.jpg");
cv::imwrite("out.png", img);
✅ Debian 下 不能直接 apt 安装 CxImage
✅ 必须 源码编译
✅ 有 Windows 依赖,Linux 使用较麻烦
✅ 新项目 不建议使用 CxImage
如果你愿意,可以告诉我:
我可以给你 最合适的使用方案或直接帮你改 Makefile / 代码。