搜尋
首頁web前端css教學使用JavaScript調整RGB顏色的飽和度和亮度

使用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
兩個圖像和一個API:我們重新著色產品所需的一切兩個圖像和一個API:我們重新著色產品所需的一切Apr 15, 2025 am 11:27 AM

我最近找到了一種動態更新任何產品圖像的顏色的解決方案。因此,只有一種產品之一,我們可以以不同的方式對其進行著色以顯示

每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響Apr 15, 2025 am 11:19 AM

在本週的綜述中,燈塔在第三方腳本上闡明了燈光,不安全的資源將在安全站點上被阻止,許多國家連接速度

託管您自己的非JavaScript分析的選項託管您自己的非JavaScript分析的選項Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

JavaScript中的Super()是什麼?JavaScript中的Super()是什麼?Apr 15, 2025 am 10:59 AM

當您看到一些稱為super()的JavaScript時,在子類中,您會使用super()調用其父母的構造函數和超級。訪問它

比較不同類型的本機JavaScript彈出窗口比較不同類型的本機JavaScript彈出窗口Apr 15, 2025 am 10:48 AM

JavaScript具有各種內置彈出API,它們顯示用於用戶交互的特殊UI。著名:

為什麼可訪問的網站如此難以構建?為什麼可訪問的網站如此難以構建?Apr 15, 2025 am 10:45 AM

前幾天,我與一些前端人們聊天,講述了為什麼這麼多公司努力創建可訪問的網站。為什麼可訪問的網站如此艱難

'隱藏”屬性顯然很弱'隱藏”屬性顯然很弱Apr 15, 2025 am 10:43 AM

有一個HTML屬性,它可以正是您認為應該做的:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具