在Debian中使用cxImage进行多媒体处理
定位与能力
安装与准备
sudo apt-get update && sudo apt-get install -y build-essential cmake libjpeg-dev libpng-dev libtiff-dev libgif-dev libwebp-dev libcximage-devgit clone https://github.com/CxImage/CxImage.gitmkdir -p CxImage/build && cd CxImage/build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
sudo make install
sudo ldconfig
典型多媒体应用场景
命令行与编程示例
#!/usr/bin/env bash
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 -rotate 90
done
echo "Batch done."
提示:命令名与参数在不同构建/发行版中可能不同,请以实际安装为准。#include "ximage.h"
#include <iostream>
int main() {
CxImage img;
// 加载
if (!img.Load("input.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "Load failed\n";
return -1;
}
// 缩放
if (!img.Resample(800, 600)) {
std::cerr << "Resample failed\n";
return -1;
}
// 灰度
img.GrayScale();
// 保存
if (!img.Save("output.png", CXIMAGE_FORMAT_PNG)) {
std::cerr << "Save failed\n";
return -1;
}
std::cout << "OK\n";
return 0;
}
编译示例(按实际库名与路径调整):g++ demo.cpp -o demo -lcximage。与FFmpeg和GStreamer的协同
ffmpeg -ss 00:05:00 -i input.mp4 -frames:v 1 -q:v 2 cover.jpg
# 之后用 cxImage 将 cover.jpg 统一转为 PNG 并缩放