かんたん作成【HTML CSS JavaScript PHP CGI Perl Ruby Python .htaccess】



このエントリーをはてなブックマークに追加
画像合成アクセスカウンター

#! /usr/local/bin/perl

use Image::Magick;

print qq(Content-type: image/jpeg\n\n);
binmode(STDOUT);

# 画像保存ディレクトリ
$dir = "../../sample/img/no/";

# カウントの読み込み
open(FILE, "+<./dat/count.dat");
eval{ flock(FILE, 2) };
$count = <FILE>;

# カウントに1を加える
++$count;

# カウントの書き込み
seek(FILE, 0, 0);
print FILE $count;
close FILE;

$count = sprintf("%07d", $count);                        # カウント桁数調整

# オブジェクト作成
$image = Image::Magick->new;

# 数字画像(オブジェクト作成、サイズ取得)
for($i = 0 ; $i < length($count) ; $i++) {
    my    $file = $dir . substr($count, $i, 1) . ".gif";            # 数字画像ファイル名
    $img[$i] = Image::Magick->new;
    $img[$i]->Read($file);                            # 数字画像読み込み
    ($w[$i], $h[$i]) = $img[$i]->Get('width', 'height');            # 数字画像サイズ取得
    $size[0] += $w[$i];                            # 生成画像横幅
    if($size[1] < $h[$i]) {                            # 生成画像縦幅
        $size[1] = $h[$i];
    }
}

# 画像サイズ
$imagesize = $size[0] . "x" . $size[1];
$image->Set(size=>$imagesize);

# 画像読み込み(背景色)
$image->Read('XC:#eeffee');

# 画像合成
$x = 0;
$y = 0;
for($i = 0 ; $i < length($count) ; $i++) {
    $image->Composite(image=>$img[$i], compose=>'Over', x=>$x, y=>$y);    # 画像合成
    undef $img[$i];                                # 数字画像破棄
    $x += $w[$i];                                # 次の画像合成位置
}

# 画像に枠
$image->Frame(
    geometry    => '3x3',
    inner        => 1,
    outer        => 1
);

# 画像表示
$image->Write("gif:-");

exit;
CGI(Perl)
Hello world ! ユーザーエージェント取得・表示($ENV{'HTTP_USER_AGENT'})
IPアドレス取得・表示($ENV{'REMOTE_ADDR'}) リンク元取得・表示($ENV{'HTTP_REFERER'})
URL取得・表示($ENV{'HTTP_HOST'}, $ENV{'REQUEST_URI'}) 環境変数を全て表示(%ENV)
ホスト名取得・表示(gethostbyaddr) 訪問者のプロバイダーを表示
訪問者の都道府県を取得・表示 日付を表示(localtime time)
日付を画像表示(localtime time, substr) アクセス日時を表示(localtime time)
指定の日までの日数を表示 曜日によって背景色を変える
日によって背景色を変える 月によって背景色を変える
見るたびに背景色を変える 見るたびに背景画像を変える
おみくじ(rand, int) カラーチャート
Shift_JIS文字コード表 UTF-8文字コード表
グラフ(横棒グラフ) アクセスカウンター
アクセスカウンター(画像) アクセスカウンター(今日・昨日)
訪問回数(クッキー, $ENV{'HTTP_COOKIE'}, Set-Cookie) アクセスログ保存
アクセスログ集計 パスワード認証
クッションページ($ENV{'QUERY_STRING'}) クッションページ($ENV{'PATH_INFO'})
フォーム入力内容をクッキーに保存 1つのCGIでフレームページを表示
IPアドレスからホスト名を取得(gethostbyaddr) ホスト名からIPアドレスを取得(gethostbyname)
IPアドレスからプロバイダーを取得 IPアドレスから都道府県を取得
文章中の文字列を別の文字列に一括変換 カレンダー
カレンダー(前月・次月へのリンク付) カレンダー(今年1月〜12月)
掲示板 掲示板(URL自動変換/連続改行・スペース削除)
掲示板(年齢・性別・都道府県選択) 画像アップロード掲示板
チャット Web日記
サイトマップ(ディレクトリ内のファイルを調べる) Webデータ取得(HTTPヘッダー, HTMLソース, use Socket)
Webデータ取得(HTTPヘッダー, HTMLソース, use HTTP::Request::Common) トラックバック受信
トラックバック送信 メール送信(メールフォーム, sendmail)
リバーシ(ボードゲーム) .htaccessユーザー認証用ユーザーファイル作成
リダイレクト 条件指定リダイレクト
言語振り分けリダイレクト 条件指定アクセス拒否(ステータスコードを返す)
HTMLファイル読み込み・表示 HTMLファイル読み込み・パスワード認証
HTMLファイル読み込み・条件指定アクセス拒否 HTMLファイル読み込み・条件指定リダイレクト
外部CGIファイル読み込み(require) 画像ファイル読み込み・表示
画像縮小・拡大・サイズ変更(Image::Magick, Resize) 画像切り出し(Image::Magick, Crop)
画像文字埋め込み(Image::Magick, Annotate) 画像合成(Image::Magick, Composite)
画像生成・保存(Image::Magick->new) 画像合成アクセスカウンター
かんたん作成【HTML CSS JavaScript PHP CGI Perl Ruby Python .htaccess】