首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 將顏色轉換為反色(補色)的函式

     編輯:PHP 綜合知識

UI 設計中常需計算顏色的反色(如白轉黑、藍轉黃),以確保文字在不同背景下可讀。本文提供 color_inverse() 函式,接受十六進位色碼(含 #),回傳對應的反色色碼。

函式實作

function color_inverse($color) {
    $color = str_replace('#', '', $color);
    if (strlen($color) != 6) {
        return '000000'; // 格式錯誤預設黑
    }
    $rgb = '';
    for ($x = 0; $x < 3; $x++) {
        $c = 255 - hexdec(substr($color, 2 * $x, 2)); // 255 - 原色值
        $c = ($c < 0) ? 0 : dechex($c);
        $rgb .= (strlen($c) < 2) ? '0' . $c : $c; // 補齊兩位
    }
    return '#' . $rgb;
}

使用範例

// 黑 → 白
echo color_inverse('#000000'); // #ffffff

// 藍 → 黃
echo color_inverse('#0000FF'); // #FFFF00

// 紅 → 青
echo color_inverse('#FF0000'); // #00FFFF

// 灰階中間值 #808080 → 本身
echo color_inverse('#808080'); // #7F7F7F (因 255-128=127)

原理解析

  • 十六進位色碼 #RRGGBB,各通道範圍 00–FF(0–255)。
  • 反色公式:新值 = 255 - 原值,對 R、G、B 通道分別運算。
  • 函式內含格式驗證與零補位,確保輸出標準 6 位色碼。

應用場景

  • 動態產生對比色文字(如儀表板、標籤、按鈕)。
  • 無障礙設計:自動計算符合 WCAG 對比度的前景色。
  • 主題切換:根據使用者選擇的主色調自動生成輔助色。

只需一行呼叫,即可獲得視覺上最對比的顏色,提升介面可讀性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved