#convert #hex #hsv #rgb #hsl #rgba #write

color-convert

支持RGB、RGBA、HEX、HSL、HSLA、HSV、CMYK相互转换,由Rust编写

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年11月21日

#1530文本处理

自定义许可协议

39KB
1K SLoC

color-convert

使用Rust将颜色相互转换。

license

安装

将此添加到您的项目Cargo.toml文件中

[dependencies]
color-convert = "0.1.0"

别忘了添加外部包

extern crate color_convert;

入门指南

extern crate color_convert;

use color_convert::color::{Color, Error};

fn main() -> Result<(), Error> {
    let mut color = Color::init("#c8c8c8ff", false, false, false);
    // or just 
    let mut color = Color::new("#c8c8c8ff");

    assert_eq!("rgb(200,200,200)", color.to_rgb()?);
}

设置

颜色有三个简单的配置

  1. 是否为大写:upper
  2. 是否包含透明度:alpha
  3. 是否为Android格式(仅使用十六进制):andriod
// ...
fn main() -> Result<(), Error> {
    let mut color = Color::new("#c8c8c8ff");

    // you can change some config
    assert_eq!("RGB(200,200,200)", color.to_upper(true).to_rgb()?);
    assert_eq!("RGBA(200,200,200,1)", color.to_alpha(true).to_rgb()?);
    assert_eq!("RGBA(200,200,255,0.78)", color.to_android(true).to_rgb()?);
}

特性

支持RGBRGBAHEXHSLHSLAHSVCMYK相互转换。

对应的方法是to_rgbto_hexto_hslto_hsvto_cmyk。对于需要转换包含透明度值的格式,您需要先将配置alpha设置为true(使用方法to_alpha)。

注意

  1. 在将某些精度值转换为CMYK和HSV时,某些值会丢失,这是算法的结果,所以在使用时请小心。
  2. 不支持CSS3颜色:transparentcurrentColor

接下来

帮助

如果您有任何问题或建议,请通过问题或电子邮件与我联系。

对于使用Sublime Text的用户,尝试我为ColorConvert编写的类似插件。

依赖关系

~2–3MB
~53K SLoC