ホームページ  >  記事  >  バックエンド開発  >  PHP での単純なグラフィック処理、PHP での単純なグラフィック処理_PHP チュートリアル

PHP での単純なグラフィック処理、PHP での単純なグラフィック処理_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:06:44874ブラウズ

PHP での単純なグラフィック処理,PHP での単純なグラフィック処理

PHP での単純なグラフィック処理

134リンハオさんによると

1.GDライブラリをロードする

GD ライブラリは、動的画像作成用のオープン関数ライブラリであり、公式 Web サイト http://www.boutell.com/gd からダウンロードできます。現在、GD ライブラリは、画像処理のために GIF、PNG、JPEG、WBMP、XBM などの複数の画像形式をサポートしています。

GD ライブラリは PHP 5 にデフォルトでインストールされますが、GD ライブラリをアクティブにするには、php.ini ファイルを変更する必要があります。ファイル内の「;extension=php_gd2.dll」オプションの前のセミコロン「;」を削除し、変更したファイルを保存し、Apache サーバーを再起動して有効にします。

2.簡単な画像を作成します

GD2 関数ライブラリを使用して、さまざまなグラフィックスや画像を処理します。キャンバスの作成は、GD2 関数ライブラリを使用してイメージを作成する最初のステップです。どのような種類のイメージを作成する場合でも、最初にキャンバスを作成する必要があり、他のすべての操作はこのキャンバス上で完了します。 GD2 関数ライブラリでのキャンバスの作成は、imagecreate() 関数を通じて実行できます。

imagecreate() 関数を使用して幅 200 ピクセル、高さ 60 ピクセルのキャンバスを作成し、キャンバスの色を RGB (225、66、159) に設定し、最終的に GIF 形式で画像を出力します。 コードは次のとおりです。次のように:

$im = imagecreate(200,60); //キャンバスを作成します
$white = imagecolorallocate($im, 225,66,159) //キャンバスの背景色を明るい緑色に設定します
imagegif( $im );

3. GD2機能を使用して写真にテキストを追加します

PHP の GD ライブラリは中国語をサポートしていますが、imageString() 関数を使用して中国語の文字列を直接描画すると、文字化けが表示されます。これは、GD2 が UTF-8 形式でしか受け取れないためです。中国語.8 エンコード形式であり、デフォルトで英語のフォントが使用されるため、中国語の文字列を出力するには、中国語の文字列をトランスコードし、中国語の文字に使用されるフォントを設定する必要があります。そうしないと、文字化けだけが出力されます。

imageTTFText() 関数を使用して、「これはテストです」というテキストを画像に出力します。コードは次のとおりです。

header("content-type:image/jpeg"); //出力を画像タイプとして定義します

$im=imagecreatefromjpeg("images/photo.jpg"); //写真を読み込みます
$textcolor= imagecolorallocate($im,56,73,136);//フォントの色を青、値をRGBカラー値に設定します
$fnt="c:/windows/fonts/simhei.ttf" //フォントを定義します
$ tto=iconv ("gb2312","utf-8","これはテストです") //出力フォント文字列を定義します
imageTTFText($im,220,0,480,340,$textcolor,$fnt,$motto); /TTF テキストを書き込む 画像に移動します
imagejpeg($im) //JPEG グラフィックを作成します
imagedestroy($im); //グラフィックを終了し、メモリ領域を解放します
?>
;

4.PHPは検証コードを生成します

checks.php ファイルを作成し、ファイル内の GD2 関数を使用して 4 桁の確認コードを作成し、生成された確認コードをセッションに保存します。

session_start();
header("content-type:image/png"); // 作成する画像の形式を設定します
$image_width=70 // 画像の高さを設定します
srand( )*100000); //乱数のシードを設定します
for($i=0;$i<4;$i++){ .=dechex(rand(0,15));
}
$_SESSION[check_checks] ]=$new_number; //取得した乱数検証コードをSESSION変数に書き込みます

$num_image=imagecreate($image_width,$image_height) //キャンバスを作成します
imagecolorallocate($num_image,255,255,255);キャンバスの色
for($i=0;$i $font=mt_rand(3,5);位置のX座標
$y=mt_rand(1,$image_height/4) )); //文字の色を設定します
imagestring($num_image,$font,$x,$y,$_SESSION[check_checks] [$i],$color); //文字を水平に出力します
}
imagepng($num_image ) ;
ユーザー ログイン フォームを作成し、checks.php を呼び出して画像のコンテンツを次の形式で出力します。

session_start();
if($_POST["送信"]!=""){
$checks=$_POST["チェック"];
if($checks==""){
echo "<script>alert('検証コードを空にすることはできません');window.location.href='index.php';</script>";
}
if($checks==$_SESSION[check_checks] ){
echo "<script> アラート('ユーザーはログインに成功しました!');window.location.href='index.php';</script>";
}else{
echo "<script> アラート('入力した確認コードが間違っています!');window.location.href='index.php';</script>";
}
}
?>



rand 関数の応用







gif"> 
"
" " ;/td>

"24" align="center" valign="ベースライン"> 






  ;

ユーザー名;/span&gt;&lt;/td&gt; td> class="style2">パスワード
验证码

< /span>  
 
      ;   

 

 
 
 






www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1064067.html技術記事 PHP 内部の単一の図形処理、PHP 内部の図形処理 PHP 内部の単一の図形処理 计应134 凌豪 1. 追加GD库 GD库は、公開された自動作成画像、ソースコード公開の関数です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。