image_splitting 0.1.0

A Rust library for splitting images into smaller sub-images, supporting both equal division (3x3 grid) and custom-sized sub-images
Documentation
# Image Splitting Library


A Rust library for splitting images into smaller sub-images. This library provides two main functions:
1. Splitting an image into 9 equal parts (3x3 grid)
2. Splitting an image into sub-images of any specified size

## Features


- Split images into 9 equal parts (3x3 grid)
- Split images into custom-sized sub-images
- Handle edge cases where image dimensions aren't perfectly divisible
- Support for various image formats (PNG, JPEG, etc.)
- Preserve image quality and format

## Installation


Add this to your `Cargo.toml`:

```toml
[dependencies]
image_splitting = "0.1.0"
```

## Usage


### Splitting into 9 equal parts


```rust
use image_splitting::split_image;

let sub_images = split_image("path/to/image.png")?;
assert_eq!(sub_images.len(), 9);
```

### Splitting into custom-sized parts


```rust
use image_splitting::split_image_with_size;

// Split into 100x100 pixel sub-images
let sub_images = split_image_with_size("path/to/image.png", 100, 100)?;
```

## Examples


### Basic 3x3 Split

```rust
use image_splitting::split_image;

fn main() -> Result<(), image::ImageError> {
    let sub_images = split_image("input.png")?;
    
    // Save each sub-image
    for (i, sub_image) in sub_images.iter().enumerate() {
        sub_image.save(format!("sub_image_{}.png", i))?;
    }
    
    Ok(())
}
```

### Custom Size Split

```rust
use image_splitting::split_image_with_size;

fn main() -> Result<(), image::ImageError> {
    let sub_images = split_image_with_size("input.png", 200, 150)?;
    
    // Save each sub-image
    for (i, sub_image) in sub_images.iter().enumerate() {
        sub_image.save(format!("sub_image_{}.png", i))?;
    }
    
    Ok(())
}
```

## Dependencies


- `image` crate (version 0.24) for image processing

## Author


Created by Raisfeld Ori on February 4, 2025

## License


This project is licensed under the MIT License - see the LICENSE file for details.