在Debian中使用cxImage的实用技巧
sudo apt update && sudo apt install build-essential libpng-dev libjpeg-dev libtiff-dev libgif-dev libwebp-dev
git clone https://github.com/cximage/cximage.gitmkdir build && cd build && cmake ..make && sudo make installsudo apt install libcximage-dev~/.bashrc(或~/.profile):export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH
执行source ~/.bashrc使配置生效。CxImage类实现跨格式加载(如BMP、JPG)和保存:#include "cximage.h"
int main() {
CxImage image;
if (!image.Load("input.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "加载图像失败!" << std::endl;
return -1;
}
if (!image.Save("output.png", CXIMAGE_FORMAT_PNG)) {
std::cerr << "保存图像失败!" << std::endl;
return -1;
}
return 0;
}
编译时需链接cxImage库:g++ -o image_app image_app.cpp -lcximage。Resample(高质量缩放)或Resize(快速缩放)调整图像尺寸:image.Resample(800, 600); // 缩放至800x600像素(保持宽高比)
Rotate方法实现顺时针旋转(支持90°、180°、270°等角度):image.Rotate(90); // 顺时针旋转90度
image.GrayScale(); // 转换为灰度图像
for img in *.jpg; do
convert "$img" "${img%.jpg}.png"
done
GrayScale()方法。image.SetBitDepth(24); // 设置为24位真彩色
image.SetJpegQuality(85); // 设置JPEG压缩质量(0-100,越高质量越好)
CDC dc;
dc.Draw(image.GetBitmap(), 0, 0); // 将图像绘制到窗口或控件
-DUSE_MULTITHREADING选项,利用多核CPU加速图像处理:g++ -o myapp myapp.cpp -lcximage -DUSE_MULTITHREADING
CXIMAGE_CACHE_SIZE增加缓存大小(单位:字节),减少重复IO操作:export CXIMAGE_CACHE_SIZE=10485760 # 设置缓存为10MB
void preloadImages() {
CxImage image;
image.Load("common1.png");
image.Load("common2.png");
}
#include <thread>
void loadImageAsync(const std::string& path) {
CxImage image;
image.Load(path);
}
int main() {
std::thread(loadImageAsync, "large_image.jpg").detach();
// 主线程继续执行其他任务
}