PHP中十六進(jìn)制顏色與RGB顏色值互轉(zhuǎn)的方法
16進(jìn)制的顏色值通常表示為#FFFFFF,當(dāng)前也有縮減為#FFF,前提是兩位兩位必需相同,例如#FEFEFE這種,就不能進(jìn)行縮減。而RGB的顏色格式是由3組0~255的數(shù)字構(gòu)成,分別代表紅(Red)、綠(Green)、藍(lán)(Blue)的色值。
那么,將16進(jìn)制轉(zhuǎn)換為RGB色值,其實(shí)就是分別把#號(hào)后面的兩位作為一個(gè)單位轉(zhuǎn)換成十進(jìn)制。
代碼如下:
/** * 將16進(jìn)制顏色轉(zhuǎn)換為RGB * author www.dbjr.com.cn */ 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{ $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; }
另一種寫(xiě)法
/** * 十六進(jìn)制轉(zhuǎn)RGB * @param string $color 16進(jìn)制顏色值 * @return array */ public static function hex2rgb($color) { $hexColor = str_replace('#', '', $color); $lens = strlen($hexColor); if ($lens != 3 && $lens != 6) { return false; } $newcolor = ''; if ($lens == 3) { for ($i = 0; $i < $lens; $i++) { $newcolor .= $hexColor[$i] . $hexColor[$i]; } } else { $newcolor = $hexColor; } $hex = str_split($newcolor, 2); $rgb = []; foreach ($hex as $key => $vls) { $rgb[] = hexdec($vls); } return $rgb; }
RGB顏色和十六進(jìn)制顏色互轉(zhuǎn)
/** * RGB轉(zhuǎn) 十六進(jìn)制 * @param $rgb RGB顏色的字符串 如:rgb(255,255,255); * @return string 十六進(jìn)制顏色值 如:#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; } /** * 十六進(jìn)制 轉(zhuǎn) RGB */ 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 = $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; }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- PHP5中使用mysqli的prepare操作數(shù)據(jù)庫(kù)的介紹
- PHP中單例模式的使用場(chǎng)景與使用方法講解
- PHP自動(dòng)生成縮略圖函數(shù)的源碼示例
- PHP添加文字水印或圖片水印的水印類(lèi)完整源代碼與使用示例
- PHP實(shí)現(xiàn)對(duì)數(shù)字分隔加千分號(hào)的方法
- PHP生成指定范圍內(nèi)的N個(gè)不重復(fù)的隨機(jī)數(shù)
- PHP將整數(shù)數(shù)字轉(zhuǎn)換為羅馬數(shù)字實(shí)例分享
- Ubuntu16.04搭建php5.6Web服務(wù)器環(huán)境
- PHP標(biāo)準(zhǔn)庫(kù)(PHP SPL)詳解
- PHP后臺(tái)備份MySQL數(shù)據(jù)庫(kù)的源碼實(shí)例
相關(guān)文章
php數(shù)組函數(shù)序列之ksort()對(duì)數(shù)組的元素鍵名進(jìn)行升序排序,保持索引關(guān)系
ksort() 函數(shù)按照鍵名對(duì)數(shù)組升序排序,為數(shù)組值保留原來(lái)的鍵??蛇x的第二個(gè)參數(shù)包含附加的排序標(biāo)志2011-11-11PHP使用PHPexcel導(dǎo)入導(dǎo)出數(shù)據(jù)的方法
這篇文章主要介紹了PHP使用PHPexcel導(dǎo)入導(dǎo)出數(shù)據(jù)的方法,以實(shí)例形式較為詳細(xì)的分析了PHP使用PHPexcel實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入與導(dǎo)出操作相關(guān)技巧,需要的朋友可以參考下2015-11-11php的慢速日志引起的Mysql錯(cuò)誤問(wèn)題分析
開(kāi)啟PHP的慢速日志(request_slowlog_timeout = 10s)是必選項(xiàng),并且它也讓我們發(fā)現(xiàn)了很多坑,解決了很多的性能問(wèn)題2014-05-05php通過(guò)前序遍歷樹(shù)實(shí)現(xiàn)無(wú)需遞歸的無(wú)限極分類(lèi)
這篇文章主要介紹了php通過(guò)前序遍歷樹(shù)實(shí)現(xiàn)無(wú)需遞歸的無(wú)限極分類(lèi),涉及基于CI框架針對(duì)數(shù)據(jù)庫(kù)的查詢(xún)與遍歷操作,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP正則表達(dá)式 /i, /is, /s, /isU等介紹
PHP正則表達(dá)式 /i, /is, /s, /isU等,都代表著什么意思,你知道嗎?下面為大家詳細(xì)介紹下2014-10-10PHP?laravel實(shí)現(xiàn)基本路由配置詳解
這篇文章主要為大家詳細(xì)介紹了PHP?laravel如何實(shí)現(xiàn)基本的路由配置,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下2022-10-10PHP實(shí)現(xiàn)的登錄,注冊(cè)及密碼修改功能分析
這篇文章主要介紹了PHP實(shí)現(xiàn)的登錄,注冊(cè)及密碼修改功能,結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)登陸功能的相關(guān)數(shù)據(jù)庫(kù)操作、ajax交互、數(shù)據(jù)驗(yàn)證及驗(yàn)證碼相關(guān)操作技巧,需要的朋友可以參考下2016-11-11