| Crates.io | stitchy-core |
| lib.rs | stitchy-core |
| version | 0.1.6 |
| created_at | 2023-04-29 00:13:22.24921+00 |
| updated_at | 2025-07-25 20:30:34.483198+00 |
| description | Library to combine multiple image files into a single image |
| homepage | |
| repository | https://github.com/grimace87/Stitchy |
| max_upload_size | |
| id | 851773 |
| size | 75,963 |
Joins multiple existing image files into a single output. Design features include:
image crate, on which this crate relies heavily
and the output is returned as an image::DynamicImage, which is re-exported from this crate for convenience.See the root project overview for an overview of the Stitchy ecosystem.
Requires Rust version 1.80 or higher.
To take the 3 most recently updated files in the current directory, ordering them oldest to newest, and writing the output to the current directory, run:
use stitchy_core::{ImageFiles, FilePathWithMetadata, OrderBy, TakeFrom, Stitch, AlignmentMode, image::ImageOutputFormat};
use std::fs::File;
use std::path::PathBuf;
fn run_stitch() -> Result<(), String> {
let number_of_files = 3;
let image_contents = ImageFiles::<FilePathWithMetadata>::builder()
.add_current_directory(vec![])?
.build()?
.sort_and_truncate_by(
number_of_files,
OrderBy::Latest,
TakeFrom::Start,
false
)?
.into_image_contents(true)?;
let output = Stitch::builder()
.images(image_contents)
.alignment(AlignmentMode::Horizontal)
.stitch()?;
let mut file_path: PathBuf = std::env::current_dir().unwrap();
file_path.push("stitch.png");
let mut file_writer = File::create(file_path).unwrap();
output.write_to(&mut file_writer, ImageOutputFormat::Png)
.map_err(|_| "Image could not be written.".to_owned())?;
Ok(())
}
See these examples for more complicated real-world usage: