在进行颜色转换的时候,改为默认使用OKLCH色彩空间。

This commit is contained in:
徐涛 2024-12-31 10:44:24 +08:00
parent a2b6432121
commit 329476fa8c

View File

@ -92,8 +92,8 @@ pub fn shift_hue(color: &str, degree: f32) -> Result<String, errors::ColorError>
let origin_color = Srgb::from_str(color) let origin_color = Srgb::from_str(color)
.map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))?
.into_format::<f32>(); .into_format::<f32>();
let hsl = Hsl::from_color(origin_color); let oklch = Oklch::from_color(origin_color);
let shifted_color = hsl.shift_hue(degree); let shifted_color = oklch.shift_hue(degree);
let srgb = Srgb::from_color(shifted_color); let srgb = Srgb::from_color(shifted_color);
Ok(format!("{:x}", srgb.into_format::<u8>())) Ok(format!("{:x}", srgb.into_format::<u8>()))
} }
@ -103,8 +103,8 @@ pub fn lighten(color: &str, percent: f32) -> Result<String, errors::ColorError>
let origin_color = Srgb::from_str(color) let origin_color = Srgb::from_str(color)
.map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))?
.into_format::<f32>(); .into_format::<f32>();
let hsl = Hsl::from_color(origin_color); let oklch = Oklch::from_color(origin_color);
let lightened_color = hsl.lighten(percent); let lightened_color = oklch.lighten(percent);
let srgb = Srgb::from_color(lightened_color); let srgb = Srgb::from_color(lightened_color);
Ok(format!("{:x}", srgb.into_format::<u8>())) Ok(format!("{:x}", srgb.into_format::<u8>()))
} }
@ -114,8 +114,8 @@ pub fn lighten_absolute(color: &str, value: f32) -> Result<String, errors::Color
let origin_color = Srgb::from_str(color) let origin_color = Srgb::from_str(color)
.map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))?
.into_format::<f32>(); .into_format::<f32>();
let hsl = Hsl::from_color(origin_color); let oklch = Oklch::from_color(origin_color);
let lightened_color = hsl.lighten_fixed(value); let lightened_color = oklch.lighten_fixed(value);
let srgb = Srgb::from_color(lightened_color); let srgb = Srgb::from_color(lightened_color);
Ok(format!("{:x}", srgb.into_format::<u8>())) Ok(format!("{:x}", srgb.into_format::<u8>()))
} }
@ -125,8 +125,8 @@ pub fn darken(color: &str, percent: f32) -> Result<String, errors::ColorError> {
let origin_color = Srgb::from_str(color) let origin_color = Srgb::from_str(color)
.map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))?
.into_format::<f32>(); .into_format::<f32>();
let hsl = Hsl::from_color(origin_color); let oklch = Oklch::from_color(origin_color);
let darkened_color = hsl.darken(percent); let darkened_color = oklch.darken(percent);
let srgb = Srgb::from_color(darkened_color); let srgb = Srgb::from_color(darkened_color);
Ok(format!("{:x}", srgb.into_format::<u8>())) Ok(format!("{:x}", srgb.into_format::<u8>()))
} }
@ -136,8 +136,8 @@ pub fn darken_absolute(color: &str, value: f32) -> Result<String, errors::ColorE
let origin_color = Srgb::from_str(color) let origin_color = Srgb::from_str(color)
.map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))?
.into_format::<f32>(); .into_format::<f32>();
let hsl = Hsl::from_color(origin_color); let oklch = Oklch::from_color(origin_color);
let darkened_color = hsl.darken_fixed(value); let darkened_color = oklch.darken_fixed(value);
let srgb = Srgb::from_color(darkened_color); let srgb = Srgb::from_color(darkened_color);
Ok(format!("{:x}", srgb.into_format::<u8>())) Ok(format!("{:x}", srgb.into_format::<u8>()))
} }