2010年1月7日木曜日

RGBテーブルその二

RGBのテーブルをまたつくりました。
サイトのバックグラウンドを作ろうとしています。

超コードがひよっこですが、ご照覧を。。。
(知り合いの方からsprintfを使えば、%xで16進数としてとれる、ということを教わりました。その方が断然簡単ですね!)



<html><head><style type="text/css"><!--table {font-size:0.8em;}-->
</style><body >
<?php
function deg2sixteen($deg){//10~15までをa~fに変換
    switch($deg){case 10:$deg="a";break;case 11:$deg="b";break;case 12:$deg="c";break;case 13:$deg="d";break;case 14:$deg="e";break;case 15:$deg="f";break;}//i switch end
    return $deg;}
echo "<table border='0' cellspacing='0' cellpadding='0'><tr>";//sell-paddingの値を0にする必要があった。
for($n=0;$n<4;$n++){//RGBそれぞれ2色ずつのテーブルをつくるループ
    echo"<td><table border='0' cellspacing='0' cellpadding='0'>";
        for($y=0;$y<16;$y++){//第一のカラーを0~15まで推移させる。
        echo"<tr>\n";
        if($n<2){$y2=15-$y;$yc=deg2sixteen($y2);}//この二行で上下を逆に。
        else{$yc=deg2sixteen($y);}
            for($x=0;$x<16;$x++){//第二のカラーを0~15まで推移させる。
                if($n%2==0){$xa=15-$x;$xc=deg2sixteen($xa);}//この二行で左右を逆に。
                else{$xc=deg2sixteen($x);}
                $y2=$yc."0";$x2=$xc."0";$z2="00";//ここで二ケタに変換
                switch($n){//ここでRGBから二色を選ぶ振り分け。
                    case 0:echo"<td bgcolor='#".$z2.$y2.$x2."'>#0".$yc.$xc."</td>\n";break;
                    case 1:echo"<td bgcolor='#".$x2.$y2.$z2."'>#0".$yc.$xc."</td>\n";break;
                    case 2:echo"<td bgcolor='#".$y2.$z2.$x2."'>#".$yc."0".$xc."</td>\n";break;
                    case 3:echo"<td bgcolor='#".$y2.$z2.$x2."'>#".$yc."0".$xc."</td>\n";break;
                }//$n switch end
            }//j for end
        echo"</tr>\n";
        }//i for end
    echo"</table></td>";
    if($n%2==1){echo"</tr><tr>";}
}//for n end
echo"</tr></table>";
echo "<table border='0' cellspacing='0' cellpadding='0'><tr>";//sell-paddingの値を0にする必要があった。
for($n=0;$n<4;$n++){//RGBそれぞれ2色ずつのテーブルをつくるループ
    echo"<td><table border='0' cellspacing='0' cellpadding='0'>";
        for($y=0;$y<16;$y++){//第一のカラーを0~15まで推移させる。
        echo"<tr>\n";
        if($n<2){$y2=15-$y;$yc=deg2sixteen($y2);}//この二行で上下を逆に。
        else{$yc=deg2sixteen($y);}
            for($x=0;$x<16;$x++){//第二のカラーを0~15まで推移させる。
                if($n%2==0){$xa=15-$x;$xc=deg2sixteen($xa);}//この二行で左右を逆に。
                else{$xc=deg2sixteen($x);}
                $y2=$yc."0";$x2=$xc."0";$z2="00";//ここで二ケタに変換
                switch($n){//ここでRGBから二色を選ぶ振り分け。
                    case 0:echo"<td bgcolor='#".$y2.$z2.$x2."'>#".$yc."0".$xc."</td>\n";break;
                    case 1:echo"<td bgcolor='#".$y2.$z2.$x2."'>#".$yc."0".$xc."</td>\n";break;
                    case 2:echo"<td bgcolor='#".$z2.$y2.$x2."'>#0".$yc.$xc."</td>\n";break;
                    case 3:echo"<td bgcolor='#".$z2.$y2.$x2."'>#0".$yc.$xc."</td>\n";break;
                }//$n switch end
            }//j for end
        echo"</tr>\n";
        }//i for end
    echo"</table></td>";
    if($n%2==1){echo"</tr><tr>";}
}//for n end
echo"</tr></table>";
?>
</body>
</html>

0 件のコメント:

コメントを投稿