در این مقاله قصد داریم برای شما نحوه تبدیل کد رنگی hex به rgb و بلعکس توسط php توضیح بدیم.
کد ترکیبی (عدد دهدهی – RBG): در این روش از کد رنگ به صورت (rgb(r,g,b است که r و g و b به ترتیب شدت رنگ های قرمز ، سبز و آبی را نشان می دهند و که هر کدام مقادیری بین ۰ تا ۲۵۵ را می توانند بپذیرند و هر چه عدد انتخاب شده بیشتر باشد شدت آن رنگ در ترکیب قرمز سبز آبی رنگ بیشتر است.
کد ترکیبی (عدد مبنای ۱۶ – HEX): در این روش که بدلیل کوتاه و ساده بودن کد رنگ بیشترین استفاده رو داره رنگ به صورت rrggbb# نشان داده می شود و تنها تفاوت آن با روش قبل استفاده از اعداد مبنای ۸ (HexaDecimal) به جای اعداد دهدهی است . که rr و gg و bb به ترتیب مقدار عددی شدت رنگ های قرمز ، سبز و آبی رو نشون میده و مقادیر هگزادسیمال بین ۰۰ تا FF که معادل همون ۰ تا ۲۵۵ دهدهی هست رو میتونه بگیره.
یک تابع برای تبدیل کد رنگی rgb یا hex نوشتیم . تابع rgb2hex2rgb() تبدیل رنگ را به آسانی انجام میدهد.
پارامتر
تابع rgb2hex2rgb() فقط یک پارامتر ($color) با دو نوع مقدار rgb یا hex را دریافت می کند.
هر کدام که قصد تبدیل را دارید
- RGB => 255,255,255 or 255 255 255 or 255.255.255
- HEX => #FFFFFF or FFFFFF
مقدار بازگشتی :
اگر کد رنگی hex را به پارامتر $color پاس بدید ، کد رنگی با فرمت RGB را به صورت آرایه return می کند . و اگر کد رنگی rgb را به پارامتر $color پاس بدید ، کد رنگی با فرمت hex را به صورت رشته ای return میکند.
تابع rgb2hex2rgb() را در کد زیر می بینید:
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 |
/** * * Author: NetParadis * Author URI: http://www.netparadis.com * Function Name: rgb2hex2rgb() * $color => HEX or RGB * Returns RGB or HEX color format depending on given value. * **/ function rgb2hex2rgb($color){ if(!$color) return false; $color = trim($color); $result = false; if(preg_match("/^[0-9ABCDEFabcdef\#]+$/i", $color)){ $hex = str_replace('#','', $color); if(!$hex) return false; if(strlen($hex) == 3): $result['r'] = hexdec(substr($hex,0,1).substr($hex,0,1)); $result['g'] = hexdec(substr($hex,1,1).substr($hex,1,1)); $result['b'] = hexdec(substr($hex,2,1).substr($hex,2,1)); else: $result['r'] = hexdec(substr($hex,0,2)); $result['g'] = hexdec(substr($hex,2,2)); $result['b'] = hexdec(substr($hex,4,2)); endif; }elseif (preg_match("/^[0-9]+(,| |.)+[0-9]+(,| |.)+[0-9]+$/i", $color)){ $rgbstr = str_replace(array(',',' ','.'), ':', $color); $rgbarr = explode(":", $rgbstr); $result = '#'; $result .= str_pad(dechex($rgbarr[0]), 2, "0", STR_PAD_LEFT); $result .= str_pad(dechex($rgbarr[1]), 2, "0", STR_PAD_LEFT); $result .= str_pad(dechex($rgbarr[2]), 2, "0", STR_PAD_LEFT); $result = strtoupper($result); }else{ $result = false; } return $result; } |
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
نحوه استفاده :
از تابع rgb2hex2rgb() به صورت زیر استفاده کنید
1 2 |
$hexString = rgb2hex2rgb('255,255,255'); $rgbArray = rgb2hex2rgb('#FFFFFF'); |
از تبدیل کد رنگی hex به rgb و بلعکس توسط php به راحتی می توانید به عنوان یکی از خدمات سایت خود اگر مثلا یک سایت طراحی یا گرافیک دارید استفاده کنید و یا اینکه شخصا ازش بهره ببرید و اگر هم قصد یادگیری بیشتر را دارید تابع را بررسی و تحلیل کنید .
موفق باشید.