利用 cxImage 实现自动化的可行路径
方案一 命令行自动化 Shell 脚本
#!/usr/bin/env bash
set -euo pipefail
INPUT_DIR="path/to/input"
OUTPUT_DIR="path/to/output"
mkdir -p "$OUTPUT_DIR"
for f in "$INPUT_DIR"/*.jpg; do
[[ -e "$f" ]] || continue
bn=$(basename -- "$f")
name="${bn%.*}"
/usr/bin/cximage -i "$f" -o "$OUTPUT_DIR/$name.png" -resize 800 600
done
echo "Batch conversion completed."
说明:命令与参数名(如 -i/-o/-resize)以实际安装的 cximage 版本为准;若需递归子目录,可结合 find 实现。方案二 C/C++ 程序化集成与编译安装
sudo apt-get update
sudo apt-get install -y build-essential libpng-dev libjpeg-dev libtiff-dev libgif-dev
git clone https://github.com/antirez/cxImage.git
mkdir -p cxImage/build && cd cxImage/build
cmake ..
make -j"$(nproc)"
sudo make install
# 如未自动安装到系统路径,按需设置环境变量
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH' >> ~/.bashrc
source ~/.bashrc
// main.cpp
#include "ximage.h"
int main() {
CxImage img;
if (!img.Load("input.jpg", CXIMAGE_FORMAT_JPG)) return 1;
img.Resample(800, 600);
if (!img.Save("output.png", CXIMAGE_FORMAT_PNG)) return 1;
return 0;
}
编译与运行:g++ main.cpp -lcxImage -o process && ./process
方案三 自动化编排与持续交付
#!/usr/bin/env bash
set -euo pipefail
sudo apt-get update
sudo apt-get install -y build-essential libpng-dev libjpeg-dev libtiff-dev libgif-dev
git clone https://github.com/antirez/cxImage.git
mkdir -p cxImage/build && cd cxImage/build
cmake .. && make -j"$(nproc)"
sudo make install
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH' >> ~/.bashrc
source ~/.bashrc
g++ -o test_cxImage test_cxImage.cpp -lcxImage && ./test_cxImage
常见问题与排查要点