Readme.ge Blog

FB image FB image

ფერები, RGB, HEX

ავტორი: ალექსანდრე თარიღი: Thursday, January 8th, 2009

რამოდენიმე ხნის წინ დამჭირდა ფერების კოდის კონვერტაცია ერთმანეთში, კერძოდ, hex – rgb-ში და პირიქით, მოკლედ შემოგთავაზებთ php ფუნქციებს, რომლებიც მარტივად შეასრულებენ დავალებულ საქმეს 🙂
პირველ რიგში ცოტა ადრე განხილულ ფუნქციას გამოვიყენებ სახელად get_string_between, რომელიც წარმატებით იქნა მოდიფიცირებული programmer-ის მიერ. ეს დაგვჭირდება rgb სტრინგის დაშლისას.

1
2
3
4
function get_string_between($string, $start, $end){
$fpos = substr($string,strpos($string,$start)+1);
return substr($fpos,0,strpos($fpos,$end));
}

გადავიყვანოთ rgb-hex-ში, მარტივად – ავიღოთ ფრთხილებში მოთავსებული rgb-ს მნიშვნელობები და 3-ვე ცალცალკე გადავიყვანოთ ჰექსში – და მიღებული სტრინგები ავაწყოთ

1
2
3
4
5
6
7
8
function rgb2hex($color){
$c = explode(',',get_string_between($color,'(',')'));
$color = '#';
$color.= dechex($c[0]);
$color.= dechex($c[1]);
$color.= dechex($c[2]);
return $color;
}

ეს მორჩა ეხლა გადავიყვანოთ hex-rgb-ში, მარტივად – ავიღოთ ფერის მნიშვნელობა, მოვაშოროთ თავში # (თუ გვაქვს რათქმაუნდა), შემდეგ შევამოწმოთ ჩანაწერის ტიპი ანუ მაგალითად თეთრი ფერი გვაქვს წარმოდგენილი FFFFFF თუ FFF სახით და თუ FFF სახით გვაქვს ვაქციოთ FFFFFF-ად და შემდეგ გადავიყვანოთ დეციმელში, ანუ ავიღოთ 2-2 სიმბოლო, დავაკონვერტიროთ და ავაწყოთ საბოლოო სტრინგი –

1
2
3
4
5
6
7
8
function hex2rgb($color){
$color = (substr($color,0,1)=='#') ? substr($color,1) : $color;
$color = (strlen($color)==3) ? $color.$color : $color;
$r = hexdec(substr($color,0,2));
$g = hexdec(substr($color,2,2));
$b = hexdec(substr($color,4,2));
return 'rgb('.$r.','.$g.','.$b.')';
}

ესეც ასე ამის მუშა მაგალითი შეიძლიათ ნახოთ ამ მისამართზე
გასათვალისწინებელია რომ აქ არსად არ ვამოწმებ გადაცემული ფერის სტრინგის ჯანმრთელობას 🙂

კატეგორიებში: უბრალოდ მარტივი. |

2 გამოხმაურება “ფერები, RGB, HEX”-ზე

  1. programmer:

    გამოვცადე და ჯავასკრიპტთან სამუშაოდ შესანიშნავი საშუალებაა 🙂 ასევე imageGD-იც გვხვდება ადგილები სადა RBG კოდია საჭირო ერთი სიტყვით დიდი მადლობა ავტორს

  2. ალექსანდრე:

    არაფერს.
    გაიხარე 🙂
    შეგიძლია ესეც ნახო, ცხელია – http://about.ge/blog/?p=141

დატოვე კომენტარი

...