2011-12-17 8 views
0

このプロジェクトでは、MySQLデータベースのデータに基づいてページの動的ロゴを作成する必要があります。テーブルには、イメージインデックス、前景色、および背景色が格納されます。テスト目的のためにページあたり複数のGD画像

は、私がイメージをシミュレートするために、Photoshopで小さな画像を作成しました、と私は前景の色を作成するために、乱数を使用しています。

ページごとに複数のランダム化画像を作成したいと思いますが、ブラウザは各呼び出しで画像のリソースを同じにしています。同じページに複数のランダムな画像を作成する方法はありますか?

私は、ランダムなクエリ文字列と出力バッファリングを使用して作業にそれを取得しようとする試みてきたが、彼らは私にすべての運を与えられていません。

スクリーンショット

http://i.imgur.com/iMP59.png

ディレクトリ構造

index.php 
logo.png/ 
logo.png/circle.png 
logo.png/index.php 

のindex.php

<html> 
<body style="background-color: #000000; color: #FFFFFF; font-family: 'Segoe UI'"> 
    <?php 
     for ($i = 0 ; $i <= 10 ; $i++) 
     { 
      echo "<img src='logo.png' />"; 
     } 
    ?> 
</body> 
</html> 

logo.png/index.phpを

<?php 
$im = imagecreatefrompng("circle.png"); 

$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); 
$black = imagecolorallocate($im, 0x00, 0x00, 0x00); 

$x = imagecolorexact($im, 0xFF, 0xFF, 0xFF); 
$y = imagecolorexact($im, 0xCC, 0xCC, 0xCC); 
$z = imagecolorexact($im, 0xAA, 0xAA, 0xAA); 

$randx = mt_rand(0, 255); 
$randy = mt_rand(0, 255); 
$randz = mt_rand(0, 255); 

imagecolorset($im, $x, $randx, $randz, $randz); 
imagecolorset($im, $y, $randy, $randy, $randx); 
imagecolorset($im, $z, $randz, $randx, $randy); 

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

答えて

0

チャンスは、あなたのイメージがブラウザによってキャッシュされていることなので、そこに作られている唯一の要求があると、同じ画像がすべての10回のコールのために繰り返されます。

ランダムなGETパラメータを使用して、各URLを異なるようにする必要があります。

<?php 
    for ($i = 0 ; $i <= 10 ; $i++) 
    { 
     $postfix = mt_rand(0, 10000); 
     echo "<img src='logo.png?random=$postfix' />"; 
    } 
?> 

ただし、画像をキャッシュ不可能にすることに注意してください.GDはすべての要求に対して新たに実行されます。しかし、それはあなたが望む行動であるように見えます。

+0

私は間違った場所にランダムなXDを持っていました。 – tatersalad58

+0

@tatersaladああ、私はそれを見ませんでした。奇妙な - それはほとんど不可能に聞こえる。ランダムなクエリ文字列に使用したコードを表示できますか? –

+1

私はそれを得ました、私は私のループ、derpの外にランダムに持っていました。ありがとうございました。 C: – tatersalad58

関連する問題