Ubuntu 下使用 CXImage 进行图像编辑
一 安装与准备
sudo apt update && sudo apt install -y build-essential cmake libpng-dev libjpeg-dev libtiff-dev libgif-devgit clone https://github.com/cximage/cximage.git && cd cximagemkdir build && cd build && cmake .. && make -j$(nproc) && sudo make installecho 'export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH' >> ~/.bashrcecho 'export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrcsudo apt install libcximage-dev(版本与功能以仓库为准)。二 编写代码进行编辑
#include <iostream>
#include "cximage.h"
int main() {
CxImage image;
if (!image.Load("input.jpg")) {
std::cerr << "Failed to load image!\n";
return 1;
}
image.GrayScale(); // 灰度化
if (!image.Save("output.jpg")) {
std::cerr << "Failed to save image!\n";
return 1;
}
std::cout << "Saved: output.jpg\n";
return 0;
}
g++ main.cpp -o image_edit -lcximage./image_editimage.Rotate(90);(顺时针90°)image.Resize(800, 600);CxImage cropped;
cropped.Copy(image, 10, 10, 300, 300); // x0,y0,x1,y1
cropped.Save("cropped.png", CXIMAGE_FORMAT_PNG);
image.Save("out.png", CXIMAGE_FORMAT_PNG);image.ConvertToFormat(CXIMAGE_FORMAT_BGR24);image.GetWidth(), image.GetHeight(), image.GetFormatName()image.SetTextFont("Arial", 16);
image.SetTextPos(10, 10);
image.SetText("Hello, CxImage!");
image.DrawText();
-lcximage,并根据需要链接格式相关库(如 libpng、libjpeg、libtiff、libgif)。三 编译与链接要点
g++ test.cpp -o test -I/usr/local/include -L/usr/local/lib -lcximageecho $LIBRARY_PATH(应包含 /usr/local/lib)export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATHg++ main.cpp -o image_edit /usr/local/lib/libcximage.a -lpng -ljpeg -ltiff -lgif -lz -ljasper四 批量处理与实用建议
for f in *.jpg; do
[ -e "$f" ] || continue
./image_edit "$f" "${f%.jpg}.png"
done