PHP实现十六进制颜色值(hex)转RGB数组方法

顾星河
顾星河
发布时间:2026-10-13| 6人浏览过
原创

在网页开发或图像处理中,经常需要将十六进制颜色代码(Hex)转换为RGB格式以便进行程序化渲染或数据计算。本文将分享一段精简的 PHP 代码,用于将 Hex 颜色值解析为包含 red、green、blue 键值的关联数组,同时兼容短格式(3位)和长格式(6位)颜色代码。

实现原理

核心逻辑主要依赖 PHP 内置的 substr 截取字符与 hexdec 十六进制转十进制函数。步骤如下:

  1. 预处理:移除颜色值开头的 # 符号。
  2. 长度判断:根据剩余字符串长度区分3位简写格式(如 F0A)和6位标准格式(如 FF00AA)。
  3. 拆分与扩展:
    • 6位格式:直接按每两位切分为红、绿、蓝分量。
    • 3位格式:对每个字符复制自身(如 A 变为 AA),以匹配6位逻辑。
  4. 转换:使用 hexdec() 将十六进制字符串转为十进制整数(0-255范围)。
  5. 封装:将结果打包为关联数组返回。

代码实现

以下函数 hex2rgb 接收一个颜色字符串作为参数,若无法识别格式则返回 false。

function hex2rgb( $colour ) { 
    // 1. 去除可能存在的 '#' 前缀
    if ( $colour[0] == '#' ) { 
        $colour = substr( $colour, 1 ); 
    } 
    
    // 2. 根据长度拆分 RGB 分量
    if ( strlen( $colour ) == 6 ) {
        // 6位格式:例如 #FFFFFF -> 'FF', 'FF', 'FF'
        list( $r, $g, $b ) = array(
            $colour[0] . $colour[1], 
            $colour[2] . $colour[3], 
            $colour[4] . $colour[5]
        );
    } elseif ( strlen( $colour ) == 3 ) {
        // 3位格式:例如 #FFF -> 'FF', 'FF', 'FF'
        list( $r, $g, $b ) = array(
            $colour[0] . $colour[0], 
            $colour[1] . $colour[1], 
            $colour[2] . $colour[2]
        );
    } else {
        // 不支持其他长度的格式
        return false;
    }
    
    // 3. 十六进制转十进制
    $r = hexdec( $r );
    $g = hexdec( $g );
    $b = hexdec( $b );
    
    // 4. 返回关联数组
    return array( 'red' => $r, 'green' => $g, 'blue' => $b );
}

测试与运行结果

使用 var_dump() 调用上述函数,输入浅灰色代码 #eeeeee,验证转换是否正确:

// 测试代码
var_dump(hex2rgb("#eeeeee"));

控制台输出结果如下,确认各通道数值均为 238(十六进制 EE):

array(3) {
  ["red"]=>
  int(238)
  ["green"]=>
  int(238)
  ["blue"]=>
  int(238)
}

注意事项

  • 安全性:该函数未对输入非字符串类型做强制类型转换,建议确保传入值为合法颜色字符串。
  • 透明度:此版本仅处理 RGB 三通道,不包含 Alpha 通道(如 RGBA 或 8位 Hex)。如需处理透明度,需额外扩展逻辑。
  • 兼容性:使用了较为基础的 PHP 语法,兼容绝大多数 PHP 版本环境。

以上就是PHP实现将颜色hex值转换成rgb的详细内容,更多关于PHP颜色处理的技巧请持续关注相关技术文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。