Crates.io | xblend |
lib.rs | xblend |
version | 0.1.0 |
source | src |
created_at | 2021-01-08 17:03:32.116403 |
updated_at | 2021-01-08 17:03:32.116403 |
description | A simple color library. |
homepage | https://crates.io/xblend |
repository | https://github.com/xstater/xblend |
max_upload_size | |
id | 334473 |
size | 27,169 |
XBlend is a simple color library can calculate color blending.
XBlend has two important structures: RGB<T> & RGBA<T>
where T can be f32 or u8
It's convenient to convert from each other and build a new color
extern crate xblend;
use xblend::*;
let color1 = rgba!(1.0,1.0,0.0,1.0);
let color2 = rgba!(255,255,0,255);
let color3 = rgba!(0xFFFF00FF);
# extern crate xblend;
# use xblend::*;
# let color2 = rgba!(255,255,0,255);
# let color3 = rgba!(0xFFFF00FF);
// it's safe to overflow
// the alpha component will NOT be evaluated
assert_eq!(color2 + color3, rgba!(254,254,0,255));
# extern crate xblend;
# use xblend::*;
use xblend::blend::SrcATop;
let color1 = rgba!(128,133,0,128).to_f32();
let color2 = rgba!(0.4,0.2,0.1,0.5);
// Only RGBA<f32> can blended with src_out.
// SrcOut Blending Mode
assert_eq!(color1.src_atop(color2).to_u8(), rgba!(114,91,12,127));