shell script எனும் குறிமுறைவரிகளின் உதவியுடன் ஒருஇணையபக்கத்தை பார்வையாளர்கள் நன்றாக படித்தறிந்து கொள்வதற்கேற்ப தெளிவுதிறனை மாற்றியமைத்திடலாம்

 நமக்கென ஒரு இணையபக்கத்தை உருவாக்கிவிட்டால் போதும் உடன்  பார்வையாளர்கள் அனைவரும் நம்முடைய இணைய பக்கத்திற்கு வந்துவிடுவார்கள் என நம்மில் பலர் தவறாக எண்ணிவிடுகின்றோம்  பொதுவாக வழக்கமான  சாம்பல வண்ண எழுத்துருக்களை வெள்ளை நிற பின்புலத்தில்  நம்முடைய இணையபக்கத்தை உருவாக்கி வெளியிட்டிருந்தால்  நம்முடைய இணையபக்கத்திற்கு வரும் பார்வையாளர்கள் நாம் கூற விழையும் கருத்துகளை  படிக்காமல் தாண்டி சென்றிடுவார்கள் அதனால் பார்வையாளர்களனைவரும் நம்முடைய இணையதளபக்கத்தை தெளிவாக படித்து நாம் கூறவிழை.யும் கருத்துகளை அறிந்து கொள்வதற்காக நாம்  பயன்படுத்திடும் எழுத்துருவிலும் நம்முடைய இணையபக்கத்தின் பின்புல தோற்றத்திலும் கவணம் செலுத்தி சரியான தெளிவுதிறன் விகிதத்தை பராமரித்தால் மட்டுமே ஏராளமான பார்வையாளர்கள்  நம்முடைய இணையபக்கத்திற்கு வருகை செய்து நாம் கூறவிழையும் கருத்துகளை படித்தறிந்து கொள்வார்கள்  மிகச்சரியான எழுத்துருக்களை கொண்ட உரைவடிவம் ,பின்புல வடிவமைப்ப ஆகியவைகளுக்கிடையேயான விகிதத்தையே தெளிவுதிறன்விகிதம்  (contrast ratio) என அழைக்கப்படுகின்றது  இந்த தெளிவுதிறன் விகிதமானது   வெள்ளை எழுத்துரு வெள்ளை பின்புலவண்ணம்1:1 என்பது முதல் கருப்பு எழுத்துரு வெள்ளை பின்புலவண்ணம் 21:1 வரை பராமரிக்கப்படுகின்றது இந்த தெளிவுதிறனைவரையறுக்கும்   பக்கத்தின் தலைப்பானது 4.5:1 என்ற விகிதத்திலும் உரையின் உள்ளடக்கமானது 3:1 என்றவிகிதத்திலும் குறைந்தபட்சம் இருக்கவேண்டும் என்றும் ஆயினும்    பக்கத்தின் தலைப்பானது  7:1 என்ற விகிதத்திலும் உரையின் உள்ளடக்கமானது 4.5:1  என்றவிகிதத்திலும் குறைந்தபட்சம் இருப்பது நல்லது  என்றும்  W3C யானது பரிந்துரைக்கின்றது 
 இணையபக்கத்தின் தெளிவுதிறன் விகிதத்தைகணக்கிடுவதற்காக  முதலில் உரையிலான எழுத்துருவினுடைய வண்ணத்தின்மதிப்பையும் பின்புலவண்ணத்தின் மதிப்பையும் அறிந்து கொள்க அதன்பின்னர் அவைகளின்  ஒளிர்வின் அளவை அறிந்து கொள்க இறுதியாக அந்த  இணையபக்கத்தின் தெளிவுதிறன் விகிதத்தைகணக்கிடுக
அதாவது முதலில் வண்ணத்தின்மதிப்பைஅறிந்து கொள்வதற்காக Zenity எனும் கருவி பயன்படுகின்றது இது வண்ணத்தின் மதிப்பினை "rgb(R,G,B)"என்றவடிவமைப்பில்  கிடைக்கச்செய்கின்றது  
color=$( zenity --title 'Set text color' --color-selection --color='black' ) எனும் கட்டளைவரியின்வாயிலாக வண்ணத்தின் மதிப்பை எளிதாக பெறலாம்  இந்நிலையில் பயனாளர் கைதவறுதலாக Cancel எனும் பொத்தானை அழுத்தியிருந்தால் பின்வருமாறு எடுத்து கொள்ளும்  if [ $? -ne 0 ] ; then echo '** color canceled .. assume black' color='rgb(0,0,0)' fi அடுத்து வண்ணங்களின் தொடர்புடைய ஒளிர்வு தன்மையை அறிந்து கொள்ள W3C ஆனது  L = 0.2126 * R + 0.7152 * G + 0.0722 * B எனும்அல்காரிதம்களை வழங்கியுள்ளது இதில் 

if RsRGB <= 0.03928 then R = RsRGB/12.92
else R = ((RsRGB+0.055)/1.055) ^ 2.4

if GsRGB <= 0.03928 then G = GsRGB/12.92
else G = ((GsRGB+0.055)/1.055) ^ 2.4

if BsRGB <= 0.03928 then B = BsRGB/12.92
else B = ((BsRGB+0.055)/1.055) ^ 2.4

and RsRGB, GsRGB, and BsRGB are defined as:

RsRGB = R8bit/255

GsRGB = G8bit/255

BsRGB = B8bit/255

என்றவாறு R, G , B ஆகியவற்றை வரையறுக்கின்றது இதனை தொடர்ந்து Zenity எனும் கருவி யானது வண்ணத்தின் மதிப்பினை

R=$( echo $color | awk -F, '{print substr($1,5)}' )
G=$( echo $color | awk -F, '{print $2}' )

B=$( echo $color | awk -F, ‘{n=length($3); print substr($3,1,n-1)}’ )

என்றவாறு “rgb(R,G,B)”என்றவடிவமைப்பில் கிடைக்கசெய்கின்றது

அதனை தொர்ந்து

echo "scale=4
rsrgb=$R/255
gsrgb=$G/255
bsrgb=$B/255
if ( rsrgb <= 0.03928 ) r = rsrgb/12.92 else r = e( 2.4 * l((rsrgb+0.055)/1.055) )
if ( gsrgb <= 0.03928 ) g = gsrgb/12.92 else g = e( 2.4 * l((gsrgb+0.055)/1.055) )
if ( bsrgb <= 0.03928 ) b = bsrgb/12.92 else b = e( 2.4 * l((bsrgb+0.055)/1.055) )

0.2126 * r + 0.7152 * g + 0.0722 * b” | bc -l

BC ஆனது if-then-elseஎனும் எளிய நிபந்தனைகளை கொண்டு கணக்கிடுமாறு ஆதரிக்கின்றது

இறுதியாக  W3C ஆனது  (L1 + 0.05) / (L2 + 0.05) என்ற வாய்ப்பாட்டின் அடிப்படையில் தெளிவுதிறன் விகிதத்தை கணக்கிடுகின்றது இங்கு  L1என்பது சாதாரண வண்ண ஒளிர்வு தன்மை L 2என்பது அடர்த்தியான வண்ணஒளிர்தன்மையாகும்  இதனுடைய BC கணக்கீடு பின்வருமாறு
echo "scale=2
if ( $r1 > $r2 ) { l1=$r1; l2=$r2 } else { l1=$r2; l2=$r1 }
(l1 + 0.05) / (l2 + 0.05)" | bc
இம்மூன்றும் இணைந்த இறுதியான குறிமுறைவரிகள் பின்வருமாறு

#!/bin/sh
# வண்ணங்களின் தெளிவுதிறன் விகிதத்தினை கணக்கிடுவதற்கான குறிமுறைவரிகள்
# வண்ணத்தையும் பின்புல வண்ணத்தையும் படித்திடுக:
# zenity  ஆனது மதிப்புகளை  'rgb(255,140,0)'    , 'rgb(255,255,255)' என்றவாறு வெளியீடுசெய்திடும் 
color=$( zenity --title 'Set text color' --color-selection --color='black' )
if [ $? -ne 0 ] ; then
    echo '** color canceled .. assume black'
    color='rgb(0,0,0)'
fi
background=$( zenity --title 'Set background color' --color-selection --color='white' )
if [ $? -ne 0 ] ; then
    echo '** background canceled .. assume white'
    background='rgb(255,255,255)'
fi
#  தொடர்புடைய ஒளிர்வுதன்மையை கணக்கிடுக:
function luminance()
{
    R=$( echo $1 | awk -F, '{print substr($1,5)}' )
    G=$( echo $1 | awk -F, '{print $2}' )
    B=$( echo $1 | awk -F, '{n=length($3); print substr($3,1,n-1)}' )
    echo "scale=4
rsrgb=$R/255
gsrgb=$G/255
bsrgb=$B/255
if ( rsrgb <= 0.03928 ) r = rsrgb/12.92 else r = e( 2.4 * l((rsrgb+0.055)/1.055) )
if ( gsrgb <= 0.03928 ) g = gsrgb/12.92 else g = e( 2.4 * l((gsrgb+0.055)/1.055) )
if ( bsrgb <= 0.03928 ) b = bsrgb/12.92 else b = e( 2.4 * l((bsrgb+0.055)/1.055) )
0.2126 * r + 0.7152 * g + 0.0722 * b" | bc -l
}

lum1=$( luminance $color )
lum2=$( luminance $background )
# தெளிவுதிறன் விகிதத்தை கணக்கிடுக
function contrast()
{
    echo "scale=2
if ( $1 > $2 ) { l1=$1; l2=$2 } else { l1=$2; l2=$1 }
(l1 + 0.05) / (l2 + 0.05)" | bc
}
rel=$( contrast $lum1 $lum2 )
# வரும் முடிவுகளை  அச்சிடுக
( cat<<EOF
இங்கு வண்ணமானது $color  எனவும்  பின்புல வண்ணம்  $backgroundஎனவும் குறிக்கப்பெறும்
தெளிவு (Contrast)விகிதம் ஆனது $rel ஆகும்
தெளிவுவிகிதமானது 1 முதல் 21 வரை (பொதுவாக  1:1 முதல்  21:1 வரை என குறிப்பிடப்படும்).
EOF
if [ ${rel%.*} -ge 4 ] ; then
    echo "Ok for body text"
else
    echo "Not good for body text"
fi
if [ ${rel%.*} -ge 3 ] ; then
    echo "Ok for title text"
else
    echo "Not good for title text"
fi
cat<<EOF
இதனை தொடர்ந்து Zenity எனும் கருவி யானது இணையபக்கத்தின் தெளிவுதிறன் விகிதத்தினை  திரையில்பிரதிபலிக்கசெய்திடும்  அதனடிப்படையில்  நம்முடைய  இணையபக்கத்தின் தெளிவுதிறன் விகிதத்தினை  அறிந்து கொண்டு   பார்வையாளர்களால்  படித்தறிவதற்கேற்ற பொருத்தமான  தெளிவுதிறனை அமைத்துகொள்க என பரிந்துரைக்கப்படுகின்றது மேலும் பொதுவாக நம்முடைய நிறுவனத்தின் லோகோவை இணையபக்கங்களில் 
EOF
) | zenity --text-info --title='Relative Luminance' --width=800 –height=600
என்றவாறு அமைத்து கொள்வது நல்லதுஎன பரிந்துரைக்கப்படுகின்றது 
%d bloggers like this: