<?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変数から移す
        //----------------------------
        
$fcolor=$_POST['fcolor'];
        
$font=$_POST['kata'];
        
$fsize=$_POST['fsize'];
        
$fkakudo=$_POST['fkakudo'];
        
$moji=$_POST['moji'];
        
//----------------------------
        // ■ タグを無効化 
        //----------------------------
        
$fcolor htmlspecialchars($fcolorENT_QUOTES);
        
$fsize htmlspecialchars($fsizeENT_QUOTES);
        
$fkakudo htmlspecialchars($fkakudoENT_QUOTES);
        
$moji htmlspecialchars($mojiENT_QUOTES);
        
//----------------------------
        // ■ 半角にする
        //----------------------------
        
$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}",$fcolor)){$error="文字色が正しくありません";}
        if (!
ereg("^[0-9]*",$fsize)){$error="フォントサイズが正しくありません";}
        if (!
ereg("^[0-9]*",$fkakudo)){$error="文字角度が正しくありません";}
        
//------------------------------------------------------
        // □ POSTされた名前を変数に保存
        //------------------------------------------------------
        
$img1        $_FILES['img1'];            //アップロードファイルオブジェクト
        
$img1tmp    $_FILES['img1']['tmp_name'];        //tmpファイル名
        
$img1name    $_FILES['img1']['name'];        //ローカルファイル名
        
$img1size    $_FILES['img1']['size'];        //サイズ
        
$img1type    $_FILES['img1']['type'];        //タイプ
        //------------------------------------------------------
        // ■ アップロード画像チェック
        //------------------------------------------------------
        
$kaku="";
        if (
$error==""){
            if (
is_uploaded_file($img1tmp)) {
                if (
$img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
                if (
$kaku==""){$error="アップロード画像に誤りがあります(JPEGのみ)";}
                if (
$kaku!=""){
                    
$filename="20050201/" .date("YmdHis") .$kaku;
                    
$boRtn=move_uploaded_file($img1tmp,$filename); 
                    if (!
$boRtn){
                        
$error="アップロードに失敗しました。";
                    }
                }else{
                    
$error="ファイルの種類に誤りがあります。";
                }
            }else{
                
$error="ファイルを入力してください。";
            }
        }
        if (
$error==""){
            
$error="POST";
            
//----------------------------
            // ■ 文字を描く
            //----------------------------

            //領域作成
            
$image imagecreatefromjpeg($filename);

            
//色の作成
            
$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($moji"SJIS""UTF-8");
            
ImageTTFText ($image$fsize$fkakudo200200$frcolor,"../common/font/ipaexg.ttf",$txt);

            
//--------------------------------------
            // ■ ファイルに再保存
            //--------------------------------------
            
@imagejpeg($image,$filename);
            
//--------------------------------------
            // ■ リソースの開放
            //--------------------------------------
            //色
            
imagecolordeallocate($image,$frcolor);
            
//画像リソースの開放
            
imagedestroy($image);
        }
    }
}else{
    
$moji="あいうえお";
    
$fsize="10";
    
$fkakudo="0";
    
$fcolor="#000000";
    
$filename="";
}

?>
<HTML> 
<HEAD> 
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8"> 
<TITLE>2005/02/01 TIPS</TITLE> 
</HEAD> 
<BODY> 
<FONT SIZE="2">
<A HREF="http://masago.kir.jp/urashima/">HOME</A>&nbsp;&nbsp;
<A HREF="php20050201.php">PHP離れ島へBACK</A>&nbsp;&nbsp;
<A HREF="phpsc.php?s=php20050201s.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" ENCTYPE="multipart/form-data"> 
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="50000">
画像ファイル:<INPUT TYPE="file" NAME="img1" SIZE="40"><BR>
<TABLE BORDER="0"> 
<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" && isset($filename) && $filename>""){
    echo 
"<IMG SRC=\"" .$filename ."\" BORDER=\"0\">";
}
?>
</CENTER>
</BODY> 
</HTML>