56 lines
1.5 KiB
Rust
56 lines
1.5 KiB
Rust
![]() |
pub mod processor;
|
||
|
pub mod converter;
|
||
|
|
||
|
pub use processor::ImageProcessor;
|
||
|
pub use converter::{ImageConverter, ImageFormat};
|
||
|
|
||
|
#[cfg(test)]
|
||
|
mod tests {
|
||
|
use super::*;
|
||
|
use gb_core::Result;
|
||
|
use super::*;
|
||
|
use gb_core::Result;
|
||
|
use image::{DynamicImage, Rgba};
|
||
|
|
||
|
#[tokio::test]
|
||
|
async fn test_image_processing_integration() -> Result<()> {
|
||
|
// Initialize components
|
||
|
let processor = ImageProcessor::new()?;
|
||
|
|
||
|
// Create test image
|
||
|
let mut image = DynamicImage::new_rgb8(200, 200);
|
||
|
|
||
|
// Test image processing operations
|
||
|
let resized = processor.resize(&image, 100, 100);
|
||
|
assert_eq!(resized.width(), 100);
|
||
|
assert_eq!(resized.height(), 100);
|
||
|
|
||
|
let cropped = processor.crop(&image, 50, 50, 100, 100)?;
|
||
|
assert_eq!(cropped.width(), 100);
|
||
|
assert_eq!(cropped.height(), 100);
|
||
|
|
||
|
let blurred = processor.apply_blur(&image, 1.0);
|
||
|
let brightened = processor.adjust_brightness(&image, 10);
|
||
|
let contrasted = processor.adjust_contrast(&image, 1.2);
|
||
|
|
||
|
// Test text addition
|
||
|
processor.add_text(
|
||
|
&mut image,
|
||
|
"Integration Test",
|
||
|
10,
|
||
|
10,
|
||
|
24.0,
|
||
|
Rgba([0, 0, 0, 255]),
|
||
|
)?;
|
||
|
|
||
|
// Test format conversion
|
||
|
let webp_data = ImageConverter::to_webp(&image, 80)?;
|
||
|
let jpeg_data = ImageConverter::to_jpeg(&image, 80)?;
|
||
|
let png_data = ImageConverter::to_png(&image)?;
|
||
|
let gif_data = ImageConverter::to_gif(&image)?;
|
||
|
|
||
|
|
||
|
Ok(())
|
||
|
}
|
||
|
}
|