Murls Murls
 
   التعامل مع الالوان طرق برمجتها وكيفية نقل الشيفرة الى بي اتش بي انشاء...

بسم الله الرحمن الرحيم


في هذه المقالة سنتطرق الى طرق انشاء الالوان بلغة الجافا سكربت مع
كيفية نقل الشيفرة الى لغة البرمحة بي اتش بي سال الله عز وجل ان يعنينا على ذلك
ماهي الالوان وكيفية تميزها
الالوان هيا نظام رقمي يخبر الكمبيوتر على تعيين منطقة من البكسلات على الشاشة
بأظاتتها بحسب الرقم المحدد
وهو يقوم بالتعامل مع الالوان الرئيسية للبكسل
وهيا الالوان التالية
الاحمر
الاخضر
الازرق
وقد تم اعتماد هذه الالوان لقدرتها على انشاء الوان بعدد
يكون
255*255*255
اي ان كل لون ياخذ اقصى قيمة رقمية وهيا من الصفر الى الرقم 255
وتبدا من اللون الاسود الى اللون الابيض
الابيض يتكون من اعلى القيم السابقة
اي 255
لكل لون بينما الاسود ياخذ القيمة صفر
من كل لون
ويمكن اتكاز االوان وتمييزها بشكليها
الاول المختصر لالوان الخالصة
وتبدا بارقام عدد ها ثلاثة من كل صنف
ولتمييز ارقام الالوان عن باقي الارقام الاخرى تم اعتماد علامة

 


الباوند
وتاخذ طريقيتن للاعلان عنها اما بالنظام الست عشري

  0-9 a-f


اي من
الصفر الى التسعة ومن الحرف a الى f
وجموعها 16 رقم مع حرف
وكما نعلم ان النظام الست عشري يبدا ب

 

    0x

    



الى ان الالوان لاتحتاج الى ذلك فقط نظيف القيمة مباشرة
الاعلان المختصر عن الالوان الثابتة كما اشرنا سابقا
مثال

  #000


او

  #fff


يقوم المتعرض بهذه الحالة الى
اخذ كل رقم واضافة مثيله مرة اخرى اي

  #000


يتم تحويله الى

  #000000


الهدف من ذلك تقليل الكود

اما الاعلان عن اللون بكامله

 #000000



 #ffffff


وهيا الطريقة الاكثر شيعوعا
وتوجد طريقة اخرى

 

     rgb
(00,ff,00);

     




الكلمة التالية هيا اختصار الى الالوان الثلاثة الاساسية التي ذكرنها
red==احمر
green==اخضر
blue==ازرق
ومهمةاللون هو اشعال الاظاءة للون من الالوان الثلاثة الاساسية بدرجة قوى معينة حتى
يتيح انتاج اللون المطلوب وهو اسلوب عمل الشاشة
كيفية برمحة مجموعة الوان

 

var $red;  //اللون الاحمر

var $green//اللون الاخضر

var $blue;  //اللون الازرق

var $color//اللون النهائي



for (var 0<= 255+= 51) {//بدا تكرار اللون الاحمر

    
$red = (== 0) ? '00' r;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

    
$red $red.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق

   

    
for (var 0<= 255+= 51) {// بدا تكرار اللون الاخضر

        
$green = (== 0) ? '00' g;// فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

        
$green $green.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق

     

        
for (var 0<= 255+= 51) {//بدا تكرار اللون الازرق

            
$blue = (== 0) ? '00' b;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

            
$blue $blue.toString(16).toUpperCase();    //toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق

            
$color '#' $red $green $blue;//جمع الالوان مع بعضها

           

            
document.writeln($color);//طباعة الالوان

        
}

    }

}




قد يتبادر سؤال لما استخدمنا الرقم 51
لانتج الوان بدرجة محددة من الالوان ويمكن استبدالها الى قيمة صفر ولكن سيكون ثقيل ولا حاجة له
الطريقة الاخرى
ساقوم بوضع مثا

 

  
var rgb = new Array('#00''#33''#66''#99''#CC''#FF');//مصفوفة الالوان الاساسية



for (var 0rgb.lengthr++) {// تكرار درجة اللون الاحمر

    
var red rgb[r];// اللون الاحمر من المصفوفة



    
for (var 0rgb.lengthg++) {//  تكرار درجة اللون الاخضر 

        
var green rgb[g];// درجة اللون الاخضر من المصفوفة

        

        
for (var 0rgb.lengthb++) {// تكرار درجة اللون الازرق

            
var blue rgb<b>;// درجة اللون الازرق من المصفوفة



            
document.writeln('#' red green blue);

        }



    }

}






سيدور سؤال من اين اتيت بالالون التابعة للمصفوفة
rgb
ساضع الكود


 

  
var $red;  //اللون الاحمر

var $green//اللون الاخضر

var $blue;  //اللون الازرق

var $color//اللون النهائي



for (var 0<= 255+= 51) {//بدا تكرار اللون الاحمر

    
$red = (== 0) ? '00' r;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

    
$red $red.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق



    
for (var 0<= 255+= 51) {// بدا تكرار اللون الاخضر

        
$green = (== 0) ? '00' g;// فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

        
$green $green.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق



        
for (var 0<= 255+= 51) {//بدا تكرار اللون الازرق

            
$blue = (== 0) ? '00' b;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

            
$blue $blue.toString(16).toUpperCase();    //toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق

            
$color '#' $red $green $blue;//جمع الالوان مع بعضها



        

        
}

    }

     
document.writeln($color);//طباعة الالوان   

}







الفرق بين الكود هذا والاول هو
document.writeln($color);//طباعة الالوان

ووضعها في التكرار الاول
حتى تطبع القيمة المتحركة للالون عند تحريك الكود التكراري
فينتج لدينا

 

 
#00FFFF #33FFFF #66FFFF #99FFFF #CCFFFF #FFFFFF 

 




ثم قمنا باقتصاص
الجزء الاول من الرقم

 

     
#00 #33 #66 #99 #CC #FF 

     



لو تلاحظ ازالة القيمة العليا من الالون حتى نصل الى النهاية لنصل للون الصافي



نقل الكود الى لغة البرمجة بي اتش بي
الدوال التي ستتغير
toString(16)==dechex()
toUpperCase()==strtoupper()

نستعرض الشيفرة بشكل اجمل


 



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml">



<
head>

<
meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<
title>color dwal.biz</title>

</
head>



<
body style="background-color:">



<
script type="text/javascript">

<!--





var 
$red;  //اللون الاحمر

var $green//اللون الاخضر

var $blue;  //اللون الازرق

var $color//اللون النهائي

var output='<table style="width: 180px"  cellpadding="0" cellspacing="0">'+

    
'<tr>';//الحقول

var count=0;

for(var 
r=0;r<=255;r+=51){//بدا تكرار اللون الاحمر

$red=(r==0)?'00':r;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية



$red=$red.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق





    
for(var g=0;g<=255;g+=51){// بدا تكرار اللون الاخضر

        
$green=(g==0)?'00':g;// فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

        
$green=$green.toString(16).toUpperCase();//toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق



        

            
for(var b=0;b<=255;b+=51){//بدا تكرار اللون الازرق

                
$blue=(b==0)?'00':b;//فحص القيمة اذا كانت صفر نقوم  بادراج الرقم صفر  من اجل القيمة الستة عشرية

        

                
$blue=$blue.toString(16).toUpperCase();    //toUpperCase()  ثم تحويل القيمة الى احرف كبيرة عن طريقtoString(16) تحويل القيمة الى ستة عشرية عن طريق

                 
$color    ='#'+$red+$green+$blue;//جمع الالوان مع بعضها

                
if(count==18){

                
output+='</tr>\n<tr>';

                
count=0;

                }

                
output+='<td style="width:10px;height:10px;background-color:'+$color+'" title="'+$color+'"></td>'                

        

                
count++;

        }

            

    }





}



output+='</table>';

document.write(output);

//-->

</script>



</body>



</html>




وارجو من الله العلي القدير ان اكون قد وفقت في الشرح
والله خير حافظ وهو ارحم الراحمين وقل ربي زدني علما
حرر في تاريخ 2009/22/08 الساعة 08:25:29