在 Debian 中,cxImage 常用于命令行批量格式转换、C++ 应用中的缩放与旋转、以及裁剪等典型场景。下面给出可直接复用的案例与要点。
#include "ximage.h"
#include <iostream>
int main() {
CxImage image;
if (!image.Load("input.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "加载图像失败!" << std::endl;
return -1;
}
if (!image.Resample(800, 600)) {
std::cerr << "缩放图像失败!" << std::endl;
return -1;
}
if (!image.Save("resized.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "保存缩放后的图像失败!" << std::endl;
return -1;
}
std::cout << "图像缩放成功!" << std::endl;
return 0;
}
#include <iostream>
#include "cximage.h"
int main() {
CXImage image;
if (!image.Load("input.jpg")) {
std::cerr << "无法加载图像文件。" << std::endl;
return 1;
}
image.Rotate(90);
if (!image.Save("output.jpg")) {
std::cerr << "无法保存图像文件。" << std::endl;
return 1;
}
std::cout << "图像已成功旋转并保存。" << std::endl;
return 0;
}
#include <iostream>
#include "cxImage.h"
int main() {
cxImage image;
if (!image.Load("input.jpg")) {
std::cerr << "无法加载图像文件" << std::endl;
return 1;
}
int x = 100, y = 100, w = 200, h = 200;
if (!image.Crop(x, y, w, h)) {
std::cerr << "裁剪失败" << std::endl;
return 1;
}
if (!image.Save("output.jpg")) {
std::cerr << "保存裁剪后的图像失败" << std::endl;
return 1;
}
std::cout << "图像裁剪并保存成功" << std::endl;
return 0;
}
git clone https://github.com/antoniogarrote/cxImage.git
cd cxImage
mkdir build && cd build
cmake ..
make
sudo make install