ფერები, RGB, HEX ამჯერად უკვე javascript-ში

დავიწყებ წინა პოსტის მსგავსად 🙂 –

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

ოპ, ამჯერად შემოგთავაზებთ არა php არამედ javascript ფუნქციებს რომელიც შეგვისრულებს იგივე საქმეს რასაც ვაკეთებდით php-ით წინა პოსტში

ვიყენებ იგივე რაოდენობის ფუნქციებს რასაც php-ში ვაკეთებდით პლუს ჯავასკრიპტისთვის ჩვენს მიერ დაწერილ hexdec და dechex ფუნქციებს. მოკლედ ამ ყველაფერს ვაზავებთ გემოვნებით და ვიღებთ სკრიპტს რომელიც როგორც ჩვენი მეგობარი იოსები იტყოდა (და იტყვის) 🙂

იგი მთლიანად არის ენკაპსულირებული თავისსავე სკოუპში რაც არის იმის გარანტია რომ მისი გამოყენება შეგიძლია მარტივად და უსაფრთხოდ თუნდაც სხვა ანალოგიური დანიშნულების სკრიპტებთან ერთად.
© code.ge

[cc lang=”javascript”]
(function() {
/* Copyright (c) 2009 Alexander Glonti (http://www.blog.readme.ge/blog) */
color = {
acts: {
strBetween: function(string, start, end) {
return string.substr(string.indexOf(start)+1,string.indexOf(end)-1);
},
hexdec: function(string) {
return parseInt(string, 16);
},
dechex: function(string) {
return parseInt(string).toString(16);
}
},
hex2rgb: function(c) {
c = (c.substr(0,1)==’#’) ? c.substr(1) : c;
c = (c.length==3) ? c+c : c;
var r = color.acts.hexdec(c.substr(0,2));
var g = color.acts.hexdec(c.substr(2,2));
var b = color.acts.hexdec(c.substr(4,2));
return ‘rgb(‘+r+’,’+g+’,’+b+’)’;
},
rgb2hex: function(c) {
var s = color.acts.strBetween(c,'(‘,’)’);
var c = s.split(‘,’);
var ncolor = ‘#’;
ncolor += color.acts.dechex(c[0]);
ncolor += color.acts.dechex(c[1]);
ncolor += color.acts.dechex(c[2]);
return ncolor;
}
};
window.color = color;
})();
[/cc]

და მისი გამოყენება –
[cc lang=”javascript”]color.hex2rgb(‘#fff’);
//ან
color.hex2rgb(‘#ffffff’);[/cc]

[cc lang=”javascript”]color.rgb2hex(‘rgb(255,255,255)’);[/cc]

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

Leave a Reply

Your email address will not be published. Required fields are marked *