开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

php中RGB转十六进制、十六进制转RGB

简介:
+关注继续查看

php中RGB转十六进制、十六进制转RGB

在js调色器中,不同的浏览器获取到的颜色值会不一样,比如ie是十六进制:#FF00FF,而火狐和谷歌浏览器中:rgb(255,255,255)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/**
* RGB转 十六进制
* @param $rgb RGB颜色的字符串 如:rgb(255,255,255);
* @return string 十六进制颜色值 如:#FFFFFF
*/
function RGBToHex($rgb){
    $regexp "/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/";
    $re = preg_match($regexp$rgb$match);
    $re array_shift($match);
    $hexColor "#";
    $hex array('0''1''2''3''4''5''6''7''8''9''A''B''C''D''E''F');
    for ($i = 0; $i < 3; $i++) {
    $r = null;
    $c $match[$i];
    $hexAr array();
while ($c > 16) {
$r $c % 16;
    $c = ($c / 16) >> 0;
    array_push($hexAr$hex[$r]);
}
array_push($hexAr$hex[$c]);
    $ret array_reverse($hexAr);
    $item = implode(''$ret);
    $item str_pad($item, 2, '0', STR_PAD_LEFT);
    $hexColor .= $item;
    }
    return $hexColor;
}
/**
* 十六进制转 RGB
* @param string $hexColor 十六颜色 ,如:#ff00ff
* @return array RGB数组
*/
function hColor2RGB($hexColor) {
    $color str_replace('#'''$hexColor);
    if (strlen($color) > 3) {
    $rgb array(
    'r' => hexdec(substr($color, 0, 2)),
    'g' => hexdec(substr($color, 2, 2)),
    'b' => hexdec(substr($color, 4, 2))
    );
    else {
    $color str_replace('#'''$hexColor);
    $r substr($color, 0, 1) . substr($color, 0, 1);
    $g substr($color, 1, 1) . substr($color, 1, 1);
    $b substr($color, 2, 1) . substr($color, 2, 1);
    $rgb array(
    'r' => hexdec($r),
    'g' => hexdec($g),
    'b' => hexdec($b)
    );
    }
    return $rgb;
}
print_r(RGBToHex("rgb(255,255,255)")); //RGB转 16进制
print_r(hColor2RGB('#ff00ff')); //十六进制转 RGB


代码执行转换结果:

095119303.jpg

16进制颜色转换为RGB色值,另一种方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
/**
* 16进制颜色转换为RGB色值
* @method hex2rgb
*/
function hex2rgb($hexColor) {
$color str_replace('#'''$hexColor);
if (strlen($color) > 3) {
$rgb array(
'r' => hexdec(substr($color, 0, 2)),
'g' => hexdec(substr($color, 2, 2)),
'b' => hexdec(substr($color, 4, 2))
);
else {
$color str_replace('#'''$hexColor);
$r substr($color, 0, 1) . substr($color, 0, 1);
$g substr($color, 1, 1) . substr($color, 1, 1);
$b substr($color, 2, 1) . substr($color, 2, 1);
$rgb array(
'r' => hexdec($r),
'g' => hexdec($g),
'b' => hexdec($b)
);
}
return $rgb;
}
print_r(hex2rgb("#FFFFFF"));
?>





附:js调色器(js弹出颜色选择框




      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1217753,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何修复“PHP 安装缺少 WordPress 所需的 MySQL 扩展”的错误?
在WordPress建站,WordPress定制开发过程中,开发者容易遇见“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”的错误提示,如果出现这样的情况,应该怎么办?北京六翼信息有限公司的开发工程师指出,要修复错误“您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展”,您需要确保您的 PHP 安装已正确安装和配置 MySQL 数据库驱动程序 (mysqlnd) 和 mysqli 扩展。只有这样,您才能恢复 WordPress 和 WordPress 数据库之间的正常连接,并让您的网站重新运行。
0 0
ECS配置mySQL\MariaDB和PHP环境
ECS配置mySQL\MariaDB和PHP环境
0 0
php操作mysql防止sql注入(合集)
php操作mysql防止sql注入(合集)
0 0
Centos中查看nginx、apache、php、mysql配置文件路径
Centos中查看nginx、apache、php、mysql配置文件路径
0 0
MySQL事务的四种隔离类型以及PHP框架Yii2中的源码解读和实际应用
MySQL事务的四种隔离类型以及PHP框架Yii2中的源码解读和实际应用
0 0
头歌php mysql操作答案
头歌php mysql操作答案
0 0
PHP连接MySQL 8.0报错的解决办法
PHP连接MySQL 8.0报错的解决办法
0 0
PHP连接MySQL 8.0报错的解决办法
PHP连接MySQL 8.0报错的解决办法
0 0
PHP+MySQL打造XXX管理系统
PHP+MySQL打造XXX管理系统
0 0
PHP error:mysql_fetch_row() expects parameter 1 to be resource, boolean given 的错误
PHP error:mysql_fetch_row() expects parameter 1 to be resource, boolean given 的错误
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
CentOS Nginx PHP JAVA 多语言镜像使用手
立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册
立即下载
PHP运行机制初探
立即下载