Crates.io | jigsaw_puzzle_generator |
lib.rs | jigsaw_puzzle_generator |
version | 0.2.0 |
source | src |
created_at | 2024-10-29 11:04:34.960883 |
updated_at | 2024-11-30 06:40:11.229151 |
description | Library for generating jigsaw puzzle images |
homepage | https://github.com/foxzool/jigsaw_puzzle |
repository | https://github.com/foxzool/jigsaw_puzzle/jigsaw_puzzle_generator |
max_upload_size | |
id | 1426924 |
size | 96,744 |
jigsaw_puzzle_generator
is a simple helper to generate jigsaw puzzle in Rust.
Inspired by the puzzle-paths
use env_logger::{Builder, Env};
use jigsaw_puzzle_generator::JigsawGenerator;
use std::env;
use std::fs::create_dir_all;
fn main() {
if env::var("RUST_LOG").is_err() {
env::set_var("RUST_LOG", "debug")
}
let env = Env::default();
Builder::from_env(env).format_timestamp_millis().init();
let image_path = env::args().nth(1).unwrap_or("raw.jpg".to_string());
let template = JigsawGenerator::from_path(&image_path, 9, 6)
.expect("Failed to load image")
.generate(false)
.expect("Failed to generate puzzle");
create_dir_all("images").expect("Failed to create images directory");
template
.origin_image
.save("images/origin_image.png")
.expect("Failed to save image");
for piece in template.pieces.iter() {
piece
.crop(&template.origin_image)
.save(format!("images/puzzle_piece_{}.png", piece.index))
.expect("Failed to save image");
}
}