რამოდენიმე ხნის წინ დამჭირდა ფერების კოდის კონვერტაცია ერთმანეთში, კერძოდ, hex – rgb-ში და პირიქით, მოკლედ შემოგთავაზებთ php ფუნქციებს, რომლებიც მარტივად შეასრულებენ დავალებულ საქმეს 🙂
პირველ რიგში ცოტა ადრე განხილულ ფუნქციას გამოვიყენებ სახელად get_string_between, რომელიც წარმატებით იქნა მოდიფიცირებული programmer-ის მიერ. ეს დაგვჭირდება rgb სტრინგის დაშლისას.
[cc lang=”php”]
function get_string_between($string, $start, $end){
$fpos = substr($string,strpos($string,$start)+1);
return substr($fpos,0,strpos($fpos,$end));
}
[/cc]
გადავიყვანოთ rgb-hex-ში, მარტივად – ავიღოთ ფრთხილებში მოთავსებული rgb-ს მნიშვნელობები და 3-ვე ცალცალკე გადავიყვანოთ ჰექსში – და მიღებული სტრინგები ავაწყოთ
[cc lang=”php”]
function rgb2hex($color){
$c = explode(‘,’,get_string_between($color,'(‘,’)’));
$color = ‘#’;
$color.= dechex($c[0]);
$color.= dechex($c[1]);
$color.= dechex($c[2]);
return $color;
}
[/cc]
ეს მორჩა ეხლა გადავიყვანოთ hex-rgb-ში, მარტივად – ავიღოთ ფერის მნიშვნელობა, მოვაშოროთ თავში # (თუ გვაქვს რათქმაუნდა), შემდეგ შევამოწმოთ ჩანაწერის ტიპი ანუ მაგალითად თეთრი ფერი გვაქვს წარმოდგენილი FFFFFF თუ FFF სახით და თუ FFF სახით გვაქვს ვაქციოთ FFFFFF-ად და შემდეგ გადავიყვანოთ დეციმელში, ანუ ავიღოთ 2-2 სიმბოლო, დავაკონვერტიროთ და ავაწყოთ საბოლოო სტრინგი –
[cc lang=”php”]
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.’)’;
}
[/cc]
ესეც ასე ამის მუშა მაგალითი შეიძლიათ ნახოთ ამ მისამართზე
გასათვალისწინებელია რომ აქ არსად არ ვამოწმებ გადაცემული ფერის სტრინგის ჯანმრთელობას 🙂
გამოვცადე და ჯავასკრიპტთან სამუშაოდ შესანიშნავი საშუალებაა 🙂 ასევე imageGD-იც გვხვდება ადგილები სადა RBG კოდია საჭირო ერთი სიტყვით დიდი მადლობა ავტორს
არაფერს.
გაიხარე 🙂
შეგიძლია ესეც ნახო, ცხელია – http://about.ge/blog/?p=141