」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何找到給定的十六進制代碼的互補顏色?

如何找到給定的十六進制代碼的互補顏色?

發佈於2025-03-23
瀏覽:180

如何確定給定顏色的互補顏色,目標是生成與給定顏色相反的顏色。例如,如果當前的顏色為黑色,則相反的是白色。在為具有動態顏色的文本設置對比的背景顏色時,此任務至關重要。 rgb顏色以獲取互補值。 將倒置的組件轉換回十六進制格式。

確保在必要時用領先的零填充十六進制值。 如果(hex.indexof('#')=== 0){ 十六進制= hex.slice(1); } //將3二元十六進制轉換為6位數。 if(hex.length === 3){ 十六進制[0]十六進制[0]六角[1] hex [1] hex [2] hex [2]; } 如果(hex.length!== 6){ 提出新錯誤(“無效的十六進制顏色。”); } //反轉顏色組件。 var r =(255 -parseint(hex.slice(0,2),16))。 g =(255 -parseint(hex.slice(2,4),16))。 b =(255 -parseint(hex.slice(4,6),16))。 //用領先的零填充每個組件並返回。 返回'#'padzero(r)padzero(g)padzero(b); } 功能padzero(str,len){ len = len || 2; var Zeros = new Array(Len).join('0'); 返回(zeros str).slice(-len); }

示例輸出:

一個帶有“ BW”選項的高級版本允許您指定結果是否應該更接近黑色或白色,以提供更好的對比度,以改善可讀性:

十六進制[0]六角[1] hex [1] hex [2] hex [2]; } 如果(hex.length!== 6){ 提出新錯誤(“無效的十六進制顏色。”); } var r = parseint(hex.slice(0,2),16),, g = parseint(hex.slice(2,4),16), B = Parseint(Hex.Slice(4,6),16); 如果(bw){ //公式確定顏色是否更接近黑色或白色。 返回(r * 0.299 g * 0.587 b * 0.114)> 186 ? '#000000' :'#ffffff'; } //反轉顏色組件。 r =(255 -r).tostring(16); g =(255 -g).tostring(16); b =(255 -b).tostring(16); //用領先的零填充每個組件並返回。 返回'#'padzero(r)padzero(g)padzero(b); }
    [[&& && && && && && &&&&&&&&&&&&&&&&&&&&&&&&&stackShare.io/resources/color-contrast-checker)
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3