<?php
//===============================================================================
//   ■■ MASAGO 離れPHP島        :GDライブラリ(2) ■■
//        Class        :php20040106.php
//        Copyright    :masago.kir.jp
//        Made by        :Masago
//        Date        :2004/01/06
//        Last Update    :20034/01/06
//        
//        Comment        :画像に字を描こうっ
//        
//        Caution        :GDライブラリ[2]
//==============================================================================
//----------------------------------------------- 
// □ 変数の初期化
//-----------------------------------------------
$error        "";            //エラーメモリ
//======================================================
// ■ POSTされたとき■
//======================================================
if ($_SERVER["REQUEST_METHOD"]=="POST"){
    
//------------------------------------------------------
    // □ ボタン押下
    //------------------------------------------------------
    
if (isset($_POST["submit"])){
        
//----------------------------
        // ■ POST変数から移す
        //----------------------------
        
$bcolor=$_POST['bcolor'];
        
$fcolor=$_POST['fcolor'];
        
$font=$_POST['kata'];
        
$fsize=$_POST['fsize'];
        
$fkakudo=$_POST['fkakudo'];
        
$moji=$_POST['moji'];
        
//----------------------------
        // ■ タグを無効化 
        //----------------------------
        
$bcolor htmlspecialchars($bcolorENT_QUOTES);
        
$fcolor htmlspecialchars($fcolorENT_QUOTES);
        
$fsize htmlspecialchars($fsizeENT_QUOTES);
        
$fkakudo htmlspecialchars($fkakudoENT_QUOTES);
        
$moji htmlspecialchars($mojiENT_QUOTES);
        
//----------------------------
        // ■ 半角にする
        //----------------------------
        
$bcolor  mb_convert_kana($bcolor,"as","UTF-8");
        
$fcolor  mb_convert_kana($fcolor,"as","UTF-8");
        
$fsize  mb_convert_kana($fsize,"as","UTF-8");
        
$fkakudo  mb_convert_kana($fkakudo,"as","UTF-8");
        
//----------------------------
        // ■ 内容チェック
        //----------------------------
        
if (!ereg("^#[0-9a-zA-Z]{6}",$bcolor)){$error="背景色が正しくありません";}
        if (!
ereg("^#[0-9a-zA-Z]{6}",$fcolor)){$error="文字色が正しくありません";}
        if (!
ereg("^[0-9]*",$fsize)){$error="フォントサイズが正しくありません";}
        if (!
ereg("^[0-9]*",$fkakudo)){$error="文字角度が正しくありません";}

        if (
$error==""){
            
$error="POST";
            
//----------------------------
            // ■ 図形を描く
            //----------------------------

            //領域作成
            
$image imagecreate(800,400);

            
//背景色の描画
            //16進数から10進数へ変換 HexDec
            
$r=HexDec(substr($bcolor,1,2));
            
$g=HexDec(substr($bcolor,3,2));
            
$b=HexDec(substr($bcolor,5,2));
            
$bgcolor = @imagecolorallocate($image,$r,$g,$b);
            
//色の作成
            
$r=HexDec(substr($fcolor,1,2));
            
$g=HexDec(substr($fcolor,3,2));
            
$b=HexDec(substr($fcolor,5,2));
            
$frcolor imagecolorallocate($image$r$g$b);
            
$txt mb_convert_encoding("まさご""SJIS""UTF-8");
            
ImageTTFText ($image$fsize$fkakudo200200$frcolor"../common/font/ipaexg.ttf",$txt);

            
//--------------------------------------
            // ■ PNG画像にしてファイルに保存
            //--------------------------------------
            //header("Content-type: image/png");
            
$file=date("YmdHis") .".png";
            @
imagepng($image,"./20040106/" .$file);
            
//--------------------------------------
            // ■ リソースの開放
            //--------------------------------------
            //色
            
imagecolordeallocate($image,$bgcolor);
            
imagecolordeallocate($image,$frcolor);
            
//画像リソースの開放
            
imagedestroy($image);
        }
    }
}else{
    
$moji="あいうえお";
    
$fsize="30";
    
$fkakudo="0";
    
$bcolor="#ff4500";
    
$fcolor="#000000";
}

?>
<HTML> 
<HEAD> 
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8"> 
<TITLE>2004/01/06 TIPS</TITLE> 
</HEAD> 
<BODY> 
<FONT SIZE="2">
<A HREF="http://masago.kir.jp/urashima/">HOME</A>&nbsp;&nbsp;
<A HREF="php20040106.php">PHP離れ島へBACK</A>&nbsp;&nbsp;
<A HREF="phpsc.php?s=php20040106s.php">このページのソース</A>
<CENTER> 
<B>〜〜 文字を描こう 〜〜</B><BR><BR>
</FONT>
<?php
//--------------------------------------------- 
// □ エラーメモリを表示
//---------------------------------------------
if ($error!="" && $error!="POST"){echo "<FONT COLOR=\"#ff0000\">$error</FONT>";}
?> 
<BR>
<?php
//--------------------------------------------- 
// □ フォーム
//---------------------------------------------
?>
<FORM NAME="objform" ACTION="<?php echo $_SERVER['SCRIPT_NAME']; ?>" METHOD="POST">
<TABLE BORDER="0"> 
<TR><TD>背景色:</TD><TD><INPUT TYPE="text" NAME="bcolor" VALUE="<?php echo $bcolor?>"></TD></TR>
<TR><TD>文字色:</TD><TD><INPUT TYPE="text" NAME="fcolor" VALUE="<?php echo $fcolor?>"></TD></TR>
<TR><TD>文字サイズ:</TD><TD><INPUT TYPE="text" NAME="fsize" VALUE="<?php echo $fsize?>"></TD></TR>
<TR><TD>文字角度:</TD><TD><INPUT TYPE="text" NAME="fkakudo" VALUE="<?php echo $fkakudo?>"></TD></TR>
<TR><TD>文字:</TD><TD><INPUT TYPE="text" NAME="moji" VALUE="<?php echo $moji?>"></TD></TR>

</TABLE>
<INPUT TYPE="submit" NAME="submit" VALUE="文字を描く">
</FORM>  
<BR>
<?php
//--------------------------------------------- 
// □ 画像表示
//---------------------------------------------
if ($error=="POST"){
    echo 
"<IMG SRC=\"" ."./20040106/" .$file ."\" BORDER=\"0\">";
}
?>
</CENTER>
</BODY> 
</HTML>