Tag: PHP

参考

画像作成

<?php

$_data = isset($_GET['p']) ? $_GET['p'] : '';
if (!preg_match('/^([RGBK]{5},){4}[RGBK]{5}$/', $_data)) {
    $_data = 'RRKKK,RKKKK,RRKRR,RKKRK,RRKRK';
}
$data = explode(',', strtoupper($_data));

$im = imagecreatetruecolor(43, 43);

$color = array(
    'R' => imagecolorallocate($im, 255,   0,   0),
    'G' => imagecolorallocate($im,   0, 255,   0),
    'B' => imagecolorallocate($im,   0,   0, 255),
    'K' => imagecolorallocate($im,   0,   0,   0),
    'W' => imagecolorallocate($im, 255, 255, 255)
);

imagefilledrectangle($im, 0, 0, 42, 42, $color['K']);
imagefilledrectangle($im, 1, 1, 41, 41, $color['W']);
imagefilledrectangle($im, 8, 8, 34, 34, $color['K']);

for ($y = 0; $y < 5; $y++) {
    for ($x = 0; $x < 5; $x++) {
        $xx = $x * 5 + 9;
        $yy = $y * 5 + 9;
        imagefilledrectangle($im, $xx, $yy, $xx + 4, $yy + 4, $color[$data[$y][$x]]);
    }
}

header('Content-Type: image/png');
imagepng($im);

サンプル

  • パラメータなし cc.php?dummy=.png
  • パラメータあり cc.php?p=GRGRG,KRKBK,GRKRK,KBRBB,GKRGG&dummy=.png
  • ドラゴンクエスト モンスターバトルロード用?
    • 使えそうなカラーコードをランダムで表示。運が良ければゲームで使える :D
      • 1行目は固定ぽいので2行目以降の4行で決まる
      • 4行のパターン数は、4色^(5ドット×4行)=1,099,511,627,776
      • DQMBのカード数は、800種類以上
      • 800/1,099,511,627,776なので、確率は1/1,374,389,534か
      • 宝くじは1/10,000,000らしい

Last-modified: 2010-07-26 (月) 13:15:07 (2642d)