更正生成颜色序列不正常循环的问题。

This commit is contained in:
徐涛 2025-01-03 15:55:54 +08:00
parent 353ed817b2
commit a1e04b846b

View File

@ -1,4 +1,4 @@
use std::str::FromStr; use std::{str::FromStr, sync::Arc};
use palette::{ use palette::{
cam16::{Cam16Jch, Parameters}, cam16::{Cam16Jch, Parameters},
@ -309,17 +309,17 @@ pub fn series(
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 oklch = Oklch::from_color(origin_color.clone()); let oklch = Arc::new(Oklch::from_color(origin_color.clone()));
let mut color_series = Vec::new(); let mut color_series = Vec::new();
for s in expand_amount..=1 { for s in (1..=expand_amount).rev() {
let darkened_color = oklch.darken(s as f32 * step); let darkened_color = Arc::clone(&oklch).darken(s as f32 * step);
let srgb = Srgb::from_color(darkened_color); let srgb = Srgb::from_color(darkened_color);
color_series.push(format!("{:x}", srgb.into_format::<u8>())); color_series.push(format!("{:x}", srgb.into_format::<u8>()));
} }
color_series.push(format!("{:x}", origin_color.into_format::<u8>())); color_series.push(format!("{:x}", origin_color.into_format::<u8>()));
for s in 1..=expand_amount { for s in 1..=expand_amount {
let lightened_color = oklch.lighten(s as f32 * step); let lightened_color = Arc::clone(&oklch).lighten(s as f32 * step);
let srgb = Srgb::from_color(lightened_color); let srgb = Srgb::from_color(lightened_color);
color_series.push(format!("{:x}", srgb.into_format::<u8>())); color_series.push(format!("{:x}", srgb.into_format::<u8>()));
} }