Skip to content

Ren Kodu Çevirici

Ana sayfa Forumlar Ren Kodu Çevirici

  • Bu konu boş.
9 yazı görüntüleniyor - 1 ile 9 arası (toplam 9)
  • Yazar
    Yazılar
  • #6679
    eozdeniz1907
    Ziyaretçi

    HTML’de kullanılan ve 16’lık sistemde ifade edilen renk kodlarını 10’luk sisteme çevirebilen ve tersi işlemi gerçekleştirebilen bir php programı konusunda yardımcı olur musunuz ?

    #8856
    Anonim
    Ziyaretçi

    Şimdi önce mantığını ele alalım:
    16’lık renk kodu sisteminde A=10, B=11, C=12, D=13, E=14 ve F=15

    Şimdi #FFFFFF kodunu nasıl 255, 255, 255 formatına çeviren bir fonksiyon hazırlayalım:
    function hexToRGB($hex){
     
    // Önce bütün karakterleri parçalayalım
     
    $her_harf str_split($hex);
     foreach(
    $her_harf AS $key=>$value){
      if(
    $value==“F” || $value==“f”$her_harf[$key]=15;
      elseif(
    $value==“E” || $value==“e”$her_harf[$key]=14;
      elseif(
    $value==“D” || $value==“d”$her_harf[$key]=13;
      elseif(
    $value==“C” || $value==“c”$her_harf[$key]=12;
      elseif(
    $value==“B” || $value==“b”$her_harf[$key]=11;
      elseif(
    $value==“A” || $value==“a”$her_harf[$key]=10;
     }
     
    $r = ($her_harf[0]*16)+$her_harf[1];
     
    $g = ($her_harf[2]*16)+$her_harf[3];
     
    $b = ($her_harf[4]*16)+$her_harf[5];
     return 
    “RGB: R= {$r} G= {$g} B= {$b};


    Bu fonksiyon #FFFFFF hexadecimal renk kodunuzu yani 16’lık sistemdeki renk kodunuzu RGB yani 10’luk sisteme çevirir ve size RGB: R=255 G=255 B=255 şeklinde bir çıktı verir.. Ben kütüphaneme ekleyeyim bunu :) Bana da lazım olabiliyor bazen iyi oldu böyle birşey yazdığım :D

    Hatta portalda makale olarak da ekliyorum :)[code=php:3eqk3smv]function hexToRGB($hex){
     
    // Önce bütün karakterleri parçalayalım
     
    $her_harf str_split($hex);
     foreach(
    $her_harf AS $key=>$value){
      if(
    $value==“F” || $value==“f”$her_harf[$key]=15;
      elseif(
    $value==“E” || $value==“e”$her_harf[$key]=14;
      elseif(
    $value==“D” || $value==“d”$her_harf[$key]=13;
      elseif(
    $value==“C” || $value==“c”$her_harf[$key]=12;
      elseif(
    $value==“B” || $value==“b”$her_harf[$key]=11;
      elseif(
    $value==“A” || $value==“a”$her_harf[$key]=10;
     }
     
    $r = ($her_harf[0]*16)+$her_harf[1];
     
    $g = ($her_harf[2]*16)+$her_harf[3];
     
    $b = ($her_harf[4]*16)+$her_harf[5];
     return 
    “RGB: R= {$r} G= {$g} B= {$b};


    Bu fonksiyon #FFFFFF hexadecimal renk kodunuzu yani 16’lık sistemdeki renk kodunuzu RGB yani 10’luk sisteme çevirir ve size RGB: R=255 G=255 B=255 şeklinde bir çıktı verir.. Ben kütüphaneme ekleyeyim bunu :) Bana da lazım olabiliyor bazen iyi oldu böyle birşey yazdığım :D

    Hatta portalda makale olarak da ekliyorum :)

    #8857
    Anonim
    Ziyaretçi
    #8858
    Anonim
    Ziyaretçi

    Bana şöyle bir şey lazım aslında :
    Sayfa ilk açıldığında hem 16’lık renk kodunun girilebileceği bir bölüm hem de R-G-B kodlarının 10’luk sistemde girilebileceği bir bölüm yapmam gerekiyor.Her iki bölümün yanında dönüştür butonu olması gerekiyor.Sonuş ekranında da hangi renge dönüşüm yapılacaksa o ren 50×50 şeklinde arkaplan olması gerekiyor.

    #8859
    Anonim
    Ziyaretçi

    Dediğini bende düşündüm ama 10’luk RGB’yi nasıl işleyeceğimi bilemedim.. Yani 255 değerini PHP’yi bırak normalde nasıl (x*16)+y=255 0<=x<=15, 0<=y<=15 denklemini çözeceğimi bilemedim.. Bu biraz daha zor..

    #8860
    Anonim
    Ziyaretçi

    o noktada dechex() diye bir fonksiyon varmış.. Senin girdiğin sayısal ifadeyi otomatik olarak hexadecimal formata çeviriyor.. O zaman senin dediğin diğer metodu da şu fonsiyon ile yapabilirsin. RGB’yi formdan 255,90,54 formatından girilmesi gerekiyor
    function RGBToHex($rgb){
     $parcala=explode(“,”, $rgb);
     $ilk=dechex($parcala[0]);
     $orta=dechex($parcala[1]);
     $son=dechex($parcala[2]);
     
    $ilk = (strlen($ilk) < 2?‘0’:).$parcala[0];
     
    $orta = (strlen($orta) < 2?‘0’:).$parcala[1];
     
    $son = (strlen($son) < 2?‘0’:).$parcala[2];
     $hex=“#”.$ilk.$orta.$son;

     return $hex;
    }
     
    Kolay gelsin[code=php:14l45szs]function RGBToHex($rgb){
     $parcala=explode(“,”, $rgb);
     $ilk=dechex($parcala[0]);
     $orta=dechex($parcala[1]);
     $son=dechex($parcala[2]);
     
    $ilk = (strlen($ilk) < 2?‘0’:).$parcala[0];
     
    $orta = (strlen($orta) < 2?‘0’:).$parcala[1];
     
    $son = (strlen($son) < 2?‘0’:).$parcala[2];
     $hex=“#”.$ilk.$orta.$son;

     return $hex;
    }
     
    Kolay gelsin

    #8861
    Anonim
    Ziyaretçi

    http://www.erenet.info/hex_rgb_renk_kodu_cevirici.php bu sitedekine benzer birşey yapmam gerekiyor.Ayrıca tek sayfa olucak.Sanırım bu sitedeki kodları incelemem lazım ama bir fikrin var mı nasıl yapıcağım konusunda ?

    #8862
    Anonim
    Ziyaretçi

    O sayfada javascript ile yapılmış.. Boş bir html sayfa oluştur ve içine aşağıdaki kodu yaz:










    <!-- Begin
    function NumToHex(num1,num2) {
    strNum=document.forms[0].elements[num1].value;
    for(i = 0; i < strNum.length; i++) {
    chr=strNum.substring(i, i + 1);
    if((isNaN(chr))||(chr == ' ')) {
    alert('You must enter a digit between 0 and 9!');
    document.forms[0].elements[num1].select();
    document.forms[0].elements[num2].value='';
    return false;
    }
    }
    if(strNum > 255) {
    alert('You must enter a number between 0 and 255!');
    document.forms[0].elements[num1].select();
    document.forms[0].elements[num2].value='';
    return false;
    }
    else {
    base = strNum / 16;
    rem = strNum % 16;
    base = base - (rem / 16);
    baseS = MakeHex(base);
    remS = MakeHex(rem);
    document.forms[0].elements[num2].value=baseS + '' + remS;
    ChangeBackground(3, 4, 5);
    return true;
    }
    }
    function MakeHex(x) {
    if((x >= 0) && (x <= 9))
    return x;
    else {
    switch(x) {
    case 10: return "A";
    case 11: return "B";
    case 12: return "C";
    case 13: return "D";
    case 14: return "E";
    case 15: return "F";
    }
    }
    }
    function HexToNum(num1,num2) {
    numberS = document.forms[0].elements[num1].value;
    tens = MakeNum(numberS.substring(0,1));
    if(tens == 'X') {
    document.forms[0].elements[num1].select();
    document.forms[0].elements[num2].value='';
    return false;
    }
    ones = 0;
    if(numberS.length > 1) // means two characters entered
    ones=MakeNum(numberS.substring(1,2));
    if(ones == 'X') {
    document.forms[0].elements[num1].select();
    document.forms[0].elements[num2].value='';
    return false;
    }
    document.forms[0].elements[num2].value = (tens * 16) + (ones * 1);
    document.forms[0].elements[num1].value = document.forms[0].elements[num1].value.toUpperCase();
    ChangeBackground(3, 4, 5);
    return true;
    }
    function MakeNum(str) {
    if((str >= 0) && (str <= 9))
    return str;
    switch(str.toUpperCase()) {
    case "A": return 10;
    case "B": return 11;
    case "C": return 12;
    case "D": return 13;
    case "E": return 14;
    case "F": return 15;
    default: alert('You must choose a number between 0 and 9 or a letter between A and F!');
    return 'X';
    }
    }
    function ChangeBackground(num1, num2, num3) {
    document.bgColor = '#'+document.forms[0].elements[num1].value + document.forms[0].elements[num2].value + document.forms[0].elements[num3].value;
    }
    // End -->

























    Renk/Kod Kırmızı Yeşil Mavi
    0-255
    HEX










    #8863
    Anonim
    Ziyaretçi
    function taban10($sayi)
    {
    $sayi=strrev($sayi);
    $basamak=strlen($sayi);

    for($b=0; $b<$basamak; $b++)
    {
    $hex[]=substr($sayi,$b,1);
    }

    for($i=$basamak-1; $i>=0; $i--)
    {
    switch($hex[$i]){
    case 'A': $hex[$i]=10; break;
    case 'B': $hex[$i]=11; break;
    case 'C': $hex[$i]=12; break;
    case 'D': $hex[$i]=13; break;
    case 'E': $hex[$i]=14; break;
    case 'F': $hex[$i]=15; break;
    default : $hex[$i]=$hex[$i];
    }

    if($i==0)
    {
    $toplam+=$hex[$i];
    }
    elseif($i==1)
    {
    $toplam+=($hex[$i]*16);
    }
    else
    {
    for($a=0; $a<$i-1; $a++)
    {
    if(!isset($aratoplam)){$aratoplam=$hex[$i]*16;}

    $aratoplam*=16;
    }
    if(!isset($toplam)){$toplam=0;}
    $toplam+=$aratoplam;
    unset($aratoplam);
    }
    }
    return $toplam;
    }

    //kullanım

    echo taban10("FFFFFF"); //çıktısı 16777215
    function taban16($sayi)
    {
    for($i=$sayi; $i>=16; $i=$i/16)
    {
    $kalan[]=$i%16;
    }
    if($i<16)
    {
    $kalan[]=$i%16;
    }

    $say=count($kalan);
    $sonuc="";
    for($a=$say-1; $a>=0; $a--)
    {
    switch($kalan[$a]){
    case '10': $kalan[$a]='A'; break;
    case '11': $kalan[$a]='B'; break;
    case '12': $kalan[$a]='C'; break;
    case '13': $kalan[$a]='D'; break;
    case '14': $kalan[$a]='E'; break;
    case '15': $kalan[$a]='F'; break;
    default : $kalan[$a]=$kalan[$a];
    }
    $sonuc.=$kalan[$a];
    }
    return $sonuc;
    }
    // kullanım
    echo taban16(16777215);//çıktısı FFFFFF
    echo '
    açık renkler
    ';

    Bu kodları çalıştıramadım nerede hata yapıyorum ?

9 yazı görüntüleniyor - 1 ile 9 arası (toplam 9)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.