From a1e04b846b27b5fb8a2102304a250aa68c45b5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 3 Jan 2025 15:55:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E7=94=9F=E6=88=90=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E5=BA=8F=E5=88=97=E4=B8=8D=E6=AD=A3=E5=B8=B8=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- color-module/src/lib.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/color-module/src/lib.rs b/color-module/src/lib.rs index 429f3c7..bb9c464 100644 --- a/color-module/src/lib.rs +++ b/color-module/src/lib.rs @@ -1,4 +1,4 @@ -use std::str::FromStr; +use std::{str::FromStr, sync::Arc}; use palette::{ cam16::{Cam16Jch, Parameters}, @@ -309,17 +309,17 @@ pub fn series( let origin_color = Srgb::from_str(color) .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.to_string()))? .into_format::(); - let oklch = Oklch::from_color(origin_color.clone()); + let oklch = Arc::new(Oklch::from_color(origin_color.clone())); let mut color_series = Vec::new(); - for s in expand_amount..=1 { - let darkened_color = oklch.darken(s as f32 * step); + for s in (1..=expand_amount).rev() { + let darkened_color = Arc::clone(&oklch).darken(s as f32 * step); let srgb = Srgb::from_color(darkened_color); color_series.push(format!("{:x}", srgb.into_format::())); } color_series.push(format!("{:x}", origin_color.into_format::())); 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); color_series.push(format!("{:x}", srgb.into_format::())); }