1 | | #!/usr/local/bin/perl |
2 | | ################################################### |
3 | | #grade.cgi グラデーションプログラム |
4 | | # 2003.06.17 MARCO |
5 | | # edit 2003.06.22 MARCO |
6 | | # |
7 | | # パーミッション |
8 | | # grade.cgi(755) |
9 | | ################################################### |
10 | | |
11 | | ############ 設定項目 ############## |
12 | | #ページタイトル |
13 | | $page_title='グラデーション'; |
14 | | #分割数 |
15 | | $devid=10; |
16 | | ###################################### |
17 | | |
18 | | #フォームからのデータを取得 |
19 | | use CGI; |
20 | | $form=CGI->new(); |
21 | | $scolor=$form->param("scolor"); |
22 | | $ecolor=$form->param("ecolor"); |
23 | | |
24 | | #初期値は乱数でをセット |
25 | | if($scolor eq ''){ |
26 | | $wr=sprintf("X",rand(256)); |
27 | | $wg=sprintf("X",rand(256)); |
28 | | $wb=sprintf("X",rand(256)); |
29 | | $scolor="$wr$wg$wb"; |
30 | | } |
31 | | if($ecolor eq ''){ |
32 | | $wr=sprintf("X",rand(256)); |
33 | | $wg=sprintf("X",rand(256)); |
34 | | $wb=sprintf("X",rand(256)); |
35 | | $ecolor="$wr$wg$wb"; |
36 | | } |
37 | | |
38 | | $rsc=substr($scolor,0,2); |
39 | | $gsc=substr($scolor,2,2); |
40 | | $bsc=substr($scolor,4,2); |
41 | | $rec=substr($ecolor,0,2); |
42 | | $gec=substr($ecolor,2,2); |
43 | | $bec=substr($ecolor,4,2); |
44 | | $rx=hex($rec)-hex($rsc); |
45 | | $gx=hex($gec)-hex($gsc); |
46 | | $bx=hex($bec)-hex($bsc); |
47 | | |
48 | | #HTML出力 |
49 | | print "Content-type: text/html\n\n"; |
50 | | print "<html><head>"; |
51 | | print "<title>$page_title</title></head>\n"; |
52 | | print "<body>\n"; |
53 | | print "<CENTER><font size=5><b>$page_title</b></font><br><br>\n"; |
54 | | print "<form action=grade.cgi method=POST>\n"; |
55 | | print "開始色と終了色を16進数で入力すると途中の色を計算します<br>\n"; |
56 | | print "開始色:<input type=text size=8 name=scolor value=$scolor><br>\n"; |
57 | | print "終了色:<input type=text size=8 name=ecolor value=$ecolor><br>\n"; |
58 | | print "<input type=submit value=送信>\n"; |
59 | | print "</form>\n"; |
60 | | print "<TABLE border=0 width=80%>\n"; |
61 | | for($i=0;$i<=$devid;$i ){ |
62 | | $rval=hex($rsc) int($rx*($i/$devid)); |
63 | | $gval=hex($gsc) int($gx*($i/$devid)); |
64 | | $bval=hex($bsc) int($bx*($i/$devid)); |
65 | | $wr=sprintf("X",$rval); |
66 | | $wg=sprintf("X",$gval); |
67 | | $wb=sprintf("X",$bval); |
68 | | $wcolor="#$wr$wg$wb"; |
69 | | print "<TR><TD><font color=$wcolor>■<b>$wcolor</b></font></TD>\n"; |
70 | | print "<TD width=80% bgcolor=$wcolor></TD></TR>\n"; |
71 | | } |
72 | | print "</TABLE></CENTER>\n"; |
73 | | print "</body></html>\n"; |
74 | | exit; |