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
|
程式碼執行轉換結果:
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" ));
?> |
本文轉自許琴 51CTO部落格,原文連結:http://blog.51cto.com/xuqin/1217753,如需轉載請自行聯絡原作者
相關文章
- JavaScript rgb與十六進位制格式轉換JavaScript
- iOS 常用RGB十六進位制顏色轉換方法iOS
- 十進位制轉十六進位制
- 十六進位制和RGB顏色格式的相互轉換
- Qt進位制轉換(十進位制轉十六進位制)QT
- 十六進位制數轉十進位制
- 十六進位制顏色轉換為RGB程式碼例項
- 十六進位制轉換為八進位制
- 十六進位制轉換為十進位制
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 二進位制、十進位制與十六進位制相互轉化
- [MSSQL]將十進位制轉成十六進位制SQL
- Oracle中十進位制與十六進位制轉換程式Oracle
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- JavaScript 十六進位制顏色和RGB顏色值的相互轉換JavaScript
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 基礎練習 十六進位制轉八進位制
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS
- 遞迴-進位制轉換器(十六進位制以內)遞迴
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- 十進位制——二 (八、十六 )進位制
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- 進位制詳解:二進位制、八進位制和十六進位制
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- 將十六進位制顏色值轉換為RGB顏色值程式碼例項
- js實現的十六進位制顏色和RGB顏色值的相互轉換JS