在Ubuntu上使用CXImage處理圖像的完整流程
在Ubuntu上使用CXImage前,需先安裝庫文件及其依賴項(如libjpeg、libpng等),確保編譯和運行時能找到必要的組件。
sudo apt update && sudo apt upgrade -y
libcximage-dev預編譯包,可直接安裝:sudo apt install libcximage-dev build-essential
若需從源碼編譯(如使用最新版本),需額外安裝構建工具和依賴庫:sudo apt install build-essential cmake libpng-dev libjpeg-dev libtiff-dev zlib1g-dev
若官方倉庫的版本不滿足需求,可從GitHub克隆源碼編譯:
git clone https://github.com/cximage/cximage.git
cd cximage
mkdir build && cd build
cmake ..
make -j$(nproc) # 使用多核加速編譯
sudo make install
安裝完成后,CXImage的頭文件會存放在/usr/local/include,庫文件在/usr/local/lib。在C++項目中使用CXImage時,需告知編譯器頭文件和庫文件的路徑。以簡單的圖像加載/保存程序為例:
mkdir cximage_demo && cd cximage_demo
main.cpp):#include <cximage.h>
#include <iostream>
int main() {
// 創建CXImage對象并加載圖像
CXImage image;
if (!image.Load("input.jpg")) { // 替換為你的圖像路徑
std::cerr << "Failed to load image!" << std::endl;
return 1;
}
// 輸出圖像信息
std::cout << "Loaded image: " << image.GetWidth() << "x" << image.GetHeight()
<< ", Format: " << image.GetFormatName() << std::endl;
// 轉換為PNG格式并保存
if (!image.Save("output.png", CXIMAGE_FORMAT_PNG)) {
std::cerr << "Failed to save image!" << std::endl;
return 1;
}
std::cout << "Image saved successfully!" << std::endl;
return 0;
}
g++編譯時,需鏈接CXImage庫及依賴(-lcximage):g++ main.cpp -o cximage_demo -I/usr/local/include -L/usr/local/lib -lcximage -lpng -ljpeg -ltiff -lz
說明:-I指定頭文件路徑,-L指定庫文件路徑,-lcximage鏈接CXImage庫,后續為依賴庫(如libpng、libjpeg等)。CXImage提供了豐富的圖像處理功能,以下是常見操作的代碼示例:
CXImage image;
if (image.Load("input.jpg")) {
image.Save("output.png", CXIMAGE_FORMAT_PNG);
}
std::cout << "Width: " << image.GetWidth()
<< ", Height: " << image.GetHeight()
<< ", Bits per pixel: " << image.GetBpp() << std::endl;
if (image.IsValid()) {
image.Resample(image.GetWidth() / 2, image.GetHeight() / 2, CXIMAGE_FILTER_BOX);
}
if (image.IsValid()) {
image.Rotate90(true); // true表示順時針
}
cximage.h: No such file or directory”,需檢查-I路徑是否正確(默認為/usr/local/include);若報錯“cannot find -lcximage”,需檢查-L路徑及庫文件是否存在(/usr/local/lib/libcximage.so)。undefined reference to png_create_read_struct”,需安裝libpng開發包(sudo apt install libpng-dev)并重新編譯。Permission denied”,需確保目標目錄有寫入權限(如使用chmod添加權限)。通過以上步驟,即可在Ubuntu上完成CXImage的安裝、配置及基本圖像處理任務。CXImage支持JPEG、PNG、BMP等多種格式,能滿足常見的圖像加載、保存、格式轉換、縮放、旋轉等需求。