CxImage是一個功能強大的C/C++圖像處理庫,支持多種圖像格式,如BMP、GIF、JPEG、PNG、TIFF等,并提供了豐富的圖像處理功能,包括加載、保存、轉換、濾鏡、旋轉、縮放等。以下是在Debian系統上使用CxImage的一些應用案例:
以下示例展示了如何使用CxImage庫進行基本的圖像處理操作:
#include "cximage.h"
#include <iostream>
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;
}
std::cout << "圖像加載和保存成功!" << std::endl;
return 0;
}
#include "cximage.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 "cximage.h"
#include <iostream>
int main() {
CxImage image;
if (!image.Load("input.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "加載圖像失敗!" << std::endl;
return -1;
}
if (!image.Rotate(90)) {
std::cerr << "旋轉圖像失敗!" << std::endl;
return -1;
}
if (!image.Save("rotated.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "保存旋轉后的圖像失敗!" << std::endl;
return -1;
}
std::cout << "圖像旋轉成功!" << std::endl;
return 0;
}
#include "cximage.h"
#include <iostream>
int main() {
CxImage image;
if (!image.Load("input.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "加載圖像失敗!" << std::endl;
return -1;
}
image.GrayScale();
if (!image.Save("grayscale.jpg", CXIMAGE_FORMAT_JPG)) {
std::cerr << "保存灰度圖像失敗!" << std::endl;
return -1;
}
std::cout << "圖像轉換為灰度成功!" << std::endl;
return 0;
}
以下是一個使用Bash腳本和CxImage進行批量處理的示例:
#!/bin/bash
input_folder="path/to/input/folder"
output_folder="path/to/output/folder"
mkdir -p "$output_folder"
for image_file in "$input_folder" /*.{jpg,jpeg,png,gif,bmp}; do
filename=$(basename -- "$image_file")
extension="${filename##*.}"
filename="${filename%.*}"
convert_to_grayscale() {
local image="CXImage $filename.$extension"
image.Load("$image_file")
image.GrayScale()
image.Save("$output_folder/${filename}_grayscale.$extension")
}
convert_to_grayscale
done
echo "批量處理完成!"
請注意,以上示例代碼需要根據CxImage庫的最新版本進行相應的調整,因為庫的API可能會隨著版本的更新而發生變化。