SQLの窓 イラストAC フリー素材

2014年11月06日

フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成

アクセスカウンターのカウントアップは、データベースを使用すると簡単です。その部分は別に作成するほうが内容の重要な部分が明確になります。

数字画像を作成するのは、imagettftext を使用すれば容易です。文字に対していろいろ装飾するには、追加処理が必要ですが、ここでは単純に白い背景に対して黒い文字を『GN-キルゴ』というフォントで出力します。

※「GN-キルゴ」は、漫画『キルミーベイベー』のタイトルロゴをイメージしたフォントです

▼ 実際の PHP による画像表示



<?php
// ***********************************************
//
//  プログラム名 : アクセスカウンターの下準備
//  作   成   者 : lightbox
//  作   成   日 : 2014/10/31
//  ソ   ー   ス : UTF-8N
//
//  概要 : 指定したフォントで数字文字列画像作成
//
// ***********************************************
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

// ***********************************************
// 使用するフォント
// ***********************************************
$font_path = "GN-KillGothic.ttf";
// ***********************************************
// 初期テキスト
// ***********************************************
$img_text = "8888888888";
// ***********************************************
// 幅と高さ
// ***********************************************
$width = 220;
$height = 30;

// ***********************************************
// キャンバス作成
// ***********************************************
$im = imagecreatetruecolor( $width, $height );

// ***********************************************
// 画像の背景色( 白 )
// ***********************************************
$white = imagecolorallocate( $im, 255, 255, 255 );
imagefilledrectangle($im, 0, 0, $width, $height, $white);

// ***********************************************
// 画像の文字色( 黒 )
// ***********************************************
$black = imagecolorallocate( $im, 0, 0, 0 );

// ***********************************************
// 使用不可サイトのチェック
// ***********************************************
$site = false;
$target_sites = array("http://toolbox.winofsql.jp/","http://logicalerror.seesaa.net/");
foreach( $target_sites as $target ) {
	$len = strlen( $target );
	$ref = substr( $_SERVER['HTTP_REFERER'], 0, $len );
	if ( $target == $ref ) {
		$site = true;
		break;
	}
}

// ***********************************************
// 【使用許可サイトの場合】
// ここに、DB から取得した文字列をセットする処理
// を入れる予定です
// ***********************************************
if ( $site ) {
	$img_text = "1235467890";
}

// ***********************************************
// フォントより文字列画像作成
// ***********************************************
imagettftext(
	$im,
	20,	// サイズ
	0,	// 角度
	5,	// x 座標
	25,	// y 座標
	$black,
	$font_path,
	$img_text);


// ***********************************************
// ブラウザへ出力
// ***********************************************
header('Content-Type: image/png');
imagepng($im);


// ***********************************************
// 後処理
// ***********************************************
imagecolordeallocate( $im, $black );
imagecolordeallocate( $im, $white );
imagedestroy($im);


?>

imagefilledrectangle は、その名の通り( FILL ) 四角形の塗りつぶし処理です。

関連する記事

フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分



【PHPの最新記事】
posted by at 2014-11-06 21:26 | PHP | このブログの読者になる | 更新情報をチェックする