目錄
利用HSL值
利用顏色庫
顏色網格工具
RGB顏色操縱技術
確定RGB輕度
飽和RGB而不會影響輕度或色調
去飽和的RGB顏色
閃電和變暗的RGB,同時保持色調
首頁 web前端 css教學 使用JavaScript調整RGB顏色的飽和度和亮度

使用JavaScript調整RGB顏色的飽和度和亮度

Apr 02, 2025 am 04:20 AM

使用JavaScript調整RGB顏色的飽和度和亮度

最近,我一直在探索顏色設計原理,從亞當·瓦森(Adam Wathan)和史蒂夫·施羅格(Steve Schroger)的作品中汲取靈感。他們的建議強調了除了一些美學上令人愉悅的十六進制代碼之外,需要進行全面的調色板。構建強大的應用需要更廣泛的範圍,包括許多灰色和幾種原色,每種顏色都具有不同的亮度和飽和度。

我的開發工作流程通常涉及十六進制代碼或RGB顏色,但手動調節輕度和飽和度很麻煩。要簡化此過程並防止恆定彩色選擇器調整的重複應變傷害,讓我們探索一些代碼以有效操縱顏色。

利用HSL值

HSL(色調,飽和度,輕度)提供了定義網絡顏色的優越方法,尤其是當預計手動顏色調整時。 HSL表示色調為數字(0-360),飽和度和輕度為百分比。例如:

 div {
  背景色:HSL(155,30%,80%);
}
登入後複製

這會產生淡淡的薄荷綠色。要添加深色文字,保持一致性,我們可以調整輕度:

 div {
  背景色:HSL(155,30%,80%);
  顏色:HSL(155,30%,5%);
}
登入後複製

這會創建一個與背景協調的黑暗文本。對於通話行動按鈕,我們可能會增加飽和度和略低的亮度:

 .call-to-action {
  背景色:HSL(155,80%,60%);
  顏色:HSL(155,30%,5%);
}
登入後複製

通過減少飽和度和增加亮度,可以進一步強調文本不太重要的文本:

 div {
  背景色:HSL(155,30%,80%);
  顏色:HSL(155,30%,5%);
}

。
  顏色:HSL(155,15%,40%);
}
登入後複製

HSL的瀏覽器兼容性和聲明性的性質使其比RGB更可取。但是,現有的RGB項目或傳統瀏覽器支持問題可能需要採取其他方法。

利用顏色庫

許多彩色操縱庫簡化了HSL-TO-RGB/十六進制轉換,並提供高級配色方案。一些值得注意的例子包括:

  • Colvertize(Philipp Mildenberger):具有轉換和操縱功能的輕質庫。
  • 顏色(Josh Junon):顏色聲明,處理和提取的流利界面。
  • TinyColor(Brian Grinstead):處理各種輸入類型並提供方案生成實用程序。

CSS-Tricks還提供了有關顏色格式轉換的寶貴資源。

顏色網格工具

對於更互動的方法,請考慮顏色網格工具。正如重構UI強調的那樣,僅數學精度並不能保證最佳的調色板。我開發的React應用程序Color Grid會根據選定的色調生成一個調色板,提供了100種飽和度和輕度變化。用戶可以直接從接口復制十六進制代碼或CSS自定義屬性。

RGB顏色操縱技術

以下技術著重於RGB顏色處理。

確定RGB輕度

注意:此方法無法說明色調的固有亮度(例如,黃色比紫色更高的亮度)。它測量混合黑色或白色的量。視覺評估對於準確的輕度判斷仍然至關重要。

輕度是通過平均最高和最低的RGB值來計算的,然後除以255:

函數getlightnessofrgb(rgbString){
  const rgbintArray =(rgbString.replace( / / g,'').slice(4,-1).split(',',')。map(e => parseint(e)));
  const最高= math.max(... rgbintarray);
  const最低= Math.min(... rgbintarray);
  返回(最低) / 2/255;
}
登入後複製

飽和RGB而不會影響輕度或色調

飽和RGB提出挑戰:灰色缺乏色調信息,而實現純色則需要50%的輕度。此示例保持輕度:

要飽和,增加最低和最高RGB值之間的差異。保持輕度需要等於0-255限制的最高和最低值的同等增加/減小。可用的飽和範圍由以下確定。

  • 灰色(相同的輕度)和255之間的差異。
  • 灰色(相同的輕度)和0之間的差異。
 // ...(從上方開始getlightnessofrgb函數)...

const grayval = getlightnessofrgb('rgb(205,228,219)') * 255; // 217
const飽和度= MATH.ROUND(MATH.MIN(255 -GRAYVAL,GRAYVAL)); // 38

// ...(飽和計算的其餘)...
登入後複製

中間值的調整與最高和最低值的變化成正比。完整的飽和功能非常涉及並省略了簡潔,但核心概念已提出。

去飽和的RGB顏色

去飽和逆轉飽和過程,向灰色值轉向。完整的去飽和導致灰色值相等的灰色。部分飽和度涉及比例減少最高和最低RGB值之間的差異。簡潔起見,還省略了完整的飽和函數。

閃電和變暗的RGB,同時保持色調

閃電涉及將RGB值按比例增加到255,而變暗會按比例地降低為0。這兩個過程逐漸降低飽和度。簡潔起見,省略了閃電和變暗的完整功能。

這些功能為RGB顏色操縱提供了基礎。但是,HSL,顏色庫和顏色網格工具提供了替代方案,可能會根據您的需求和項目限制提供更有效的解決方案。

以上是使用JavaScript調整RGB顏色的飽和度和亮度的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

See all articles