在 Linux 下集成 CxImage,通常有两种常见场景:
1️⃣ 源码编译集成(推荐,最通用)
2️⃣ 作为第三方库集成到你的项目中(CMake / Makefile)
下面以 Linux(Ubuntu / Debian / CentOS 等) 为例详细说明。
CxImage 本身是为 Windows / Visual Studio 设计的库,
在 Linux 下 不能直接用 MSVC 工程文件编译,需要先做适配或寻找 Linux 移植版本。
实际在 Linux 中使用时,常见做法有:
CxImage 依赖以下库(Linux 下需先安装):
sudo apt update
sudo apt install -y \
build-essential \
cmake \
libpng-dev \
libjpeg-dev \
libtiff-dev \
libgif-dev \
zlib1g-dev
sudo yum groupinstall "Development Tools"
sudo yum install -y \
libpng-devel \
libjpeg-devel \
libtiff-devel \
giflib-devel \
zlib-devel
git clone https://github.com/WangTingMan/cximage.git
cd cximage
如果你找不到合适的 Linux 版本,也可以搜索:
cximage linux port github
cd cximage
目录结构通常类似:
cximage/
├── CxImage/
│ ├── CxImage.cpp
│ ├── CxImagePng.cpp
│ └── ...
├── jpeg/
├── png/
├── zlib/
└── Makefile
make
如果成功,会生成:
libcximage.a.og++ -c CxImage/*.cpp -I. -Ijpeg -Ipng -Izlib
ar rcs libcximage.a *.o
project/
├── main.cpp
├── include/
│ └── CxImage/
├── lib/
│ └── libcximage.a
└── CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test_cximage)
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(/usr/include/libpng /usr/include/libjpeg)
add_executable(test_cximage main.cpp)
target_link_libraries(test_cximage
${PROJECT_SOURCE_DIR}/lib/libcximage.a
png
jpeg
z
)
编译:
mkdir build
cd build
cmake ..
make
#include "CxImage/ximage.h"
#include <iostream>
int main() {
CxImage image;
if (image.Load("test.jpg", CXIMAGE_FORMAT_JPG)) {
image.Save("test.png", CXIMAGE_FORMAT_PNG);
std::cout << "Convert success" << std::endl;
}
return 0;
}
原因:
BITMAPINFO)✅ 解决:
| 场景 | 建议 |
|---|---|
| 新项目 | ❌ 不推荐 |
| 维护旧代码 | ✅ 可用 |
| 跨平台 | ❌ 不推荐 |
| 图像格式多 | ✅ ImageMagick |
如果可以换库,推荐:
✅ 找一个 可用的 CxImage Linux 移植版本
✅ 针对 你的 Linux 发行版 写完整编译脚本
✅ 帮你 把 CxImage 替换成 OpenCV
✅ 排查你当前的 编译错误
你可以直接贴: