image_overlay/
lib.rs

1//! # image-overlay  
2//! This crate supports overlaying images with 27 blend modes.  
3//! 
4//! # Usage
5//! This is to be used with image crate as following:
6//!
7//! ``````````
8//! use image::{DynamicImage, ImageBuffer, Rgba, Luma};
9//! use image_overlay::{overlay, overlay_dyn_img, BlendMode};
10//! 
11//! 
12//! let mut dest = ImageBuffer::<Rgba<u8>, Vec<u8>>::new(100, 100);
13//! let src = ImageBuffer::<Luma<u16>, Vec<u16>>::new(100, 100);
14//! 
15//! overlay(&mut dest, &src, 0, 0, BlendMode::default());
16//! 
17//! 
18//! let mut dest = DynamicImage::new_rgba8(100, 100);
19//! let src = DynamicImage::new_luma8(100, 100);
20//! 
21//! // Do NOT use "overlay" for DynamicImage. Use "overlay_dyn_img" insted.  
22//! overlay_dyn_img(&mut dest, &src, 0, 0, BlendMode::default());
23//! ``````````
24//! 
25//! # Features
26//! Use f32 as an intermediate representation by default.  
27//! However, can perform higher-precision calculations using f64 by enabling the "f64" feature.  
28
29mod blend_mode;
30mod overlay;
31mod as_rgba;
32
33pub mod rng;
34pub mod blend;
35
36pub use as_rgba::AsRgba;
37pub use blend_mode::BlendMode;
38pub use overlay::*;