ფერები, RGB, HEX
რამოდენიმე ხნის წინ დამჭირდა ფერების კოდის კონვერტაცია ერთმანეთში, კერძოდ, 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.')'; } |
ესეც ასე ამის მუშა მაგალითი შეიძლიათ ნახოთ ამ მისამართზე
გასათვალისწინებელია რომ აქ არსად არ ვამოწმებ გადაცემული ფერის სტრინგის ჯანმრთელობას 🙂
January 19th, 2009 at 12:40 am
გამოვცადე და ჯავასკრიპტთან სამუშაოდ შესანიშნავი საშუალებაა 🙂 ასევე imageGD-იც გვხვდება ადგილები სადა RBG კოდია საჭირო ერთი სიტყვით დიდი მადლობა ავტორს
January 19th, 2009 at 12:56 am
არაფერს.
გაიხარე 🙂
შეგიძლია ესეც ნახო, ცხელია – http://about.ge/blog/?p=141