Trait ansi_colours::AsRGB
source · pub trait AsRGB {
// Required method
fn as_u32(&self) -> u32;
// Provided method
fn to_ansi256(&self) -> u8 { ... }
}
Expand description
Type which (can) represent an sRGB colour. Used to provide overloaded
versions of ansi256_from_rgb
function.
Required Methods§
Provided Methods§
sourcefn to_ansi256(&self) -> u8
fn to_ansi256(&self) -> u8
Returns index of a colour in 256-colour ANSI palette approximating given sRGB colour.
This is provided by default and uses Self::as_u32
to determine
24-bit sRGB representation of the colour.
An implementation should provide its own definition if it can offer
a more direct approximation. For example, if Self
represents shades
of grey, it’s faster to use ansi256_from_grey
than relay on to_u32
conversion; or if it represents a variant which can store index in the
palette or an RGB colour, it’s better to either return the index or
perform approximation depending on the variant.
Implementations on Foreign Types§
source§impl<C: Component> AsRGB for RGB<C>
impl<C: Component> AsRGB for RGB<C>
source§fn as_u32(&self) -> u32
fn as_u32(&self) -> u32
Returns representation of the sRGB colour as a 24-bit 0xRRGGBB
integer.
This implementation is present only if rgb
crate feature is enabled.
Implementation is provided for u8
and u16
colour component types.
Examples
use ansi_colours::{AsRGB, ansi256_from_rgb};
assert_eq!(0x123456, rgb::RGB8::new(0x12, 0x34, 0x56).as_u32());
assert_eq!( 16, ansi256_from_rgb(rgb::RGB8::new( 1, 1, 1)));
assert_eq!( 16, ansi256_from_rgb(rgb::RGB8::new( 0, 1, 2)));
assert_eq!( 67, ansi256_from_rgb(rgb::RGB8::new( 95, 135, 175)));
assert_eq!(231, ansi256_from_rgb(rgb::RGB8::new(255, 255, 255)));
assert_eq!(0x123456, rgb::RGB16::new(0x12ab, 0x34cd, 0x56ef).as_u32());
assert_eq!( 16, ansi256_from_rgb(rgb::RGB16::new( 256, 511, 256)));
assert_eq!( 16, ansi256_from_rgb(rgb::RGB16::new( 128, 256, 512)));
assert_eq!( 67, ansi256_from_rgb(rgb::RGB16::new(24500, 34600, 44800)));
assert_eq!(231, ansi256_from_rgb(rgb::RGB16::new(65535, 65535, 65535)));
source§impl<C: Component> AsRGB for BGR<C>
impl<C: Component> AsRGB for BGR<C>
source§fn as_u32(&self) -> u32
fn as_u32(&self) -> u32
Returns representation of the sRGB colour as a 24-bit 0xRRGGBB
integer.
This implementation is present only if rgb
crate feature is enabled.
Implementation is provided for u8
and u16
colour component types.
Examples
use ansi_colours::{AsRGB, ansi256_from_rgb};
use rgb::alt::{BGR8, BGR16};
assert_eq!(0x123456, BGR8 { b: 0x56, g: 0x34, r: 0x12 }.as_u32());
assert_eq!( 16, ansi256_from_rgb(BGR8 { r: 1, g: 1, b: 1 }));
assert_eq!( 16, ansi256_from_rgb(BGR8 { r: 0, g: 1, b: 2 }));
assert_eq!( 67, ansi256_from_rgb(BGR8 { r: 95, g: 135, b: 175 }));
assert_eq!(231, ansi256_from_rgb(BGR8 { r: 255, g: 255, b: 255 }));
assert_eq!(0x123456, BGR16 { b: 0x56ef, g: 0x34cd, r: 0x12ab }.as_u32());
assert_eq!( 16, ansi256_from_rgb(BGR16 { r: 256, g: 511, b: 256 }));
assert_eq!( 16, ansi256_from_rgb(BGR16 { r: 128, g: 256, b: 512 }));
assert_eq!( 67, ansi256_from_rgb(BGR16 { r: 24500, g: 34600, b: 44800 }));
assert_eq!(231, ansi256_from_rgb(BGR16 { r: 65535, g: 65535, b: 65535 }));
source§impl<C: Component> AsRGB for Gray<C>
impl<C: Component> AsRGB for Gray<C>
source§fn to_ansi256(&self) -> u8
fn to_ansi256(&self) -> u8
Returns index of a colour in 256-colour ANSI palette approximating given shade grey.
This implementation is present only if rgb
crate feature is enabled.
Implementation is provided for u8
and u16
colour component types.
Examples
use ansi_colours::ansi256_from_rgb;
assert_eq!(244, ansi256_from_rgb(rgb::alt::Gray::<u8>(128)));
assert_eq!(244, ansi256_from_rgb(rgb::alt::Gray::<u16>(33023)));