0

さまざまな画像を表示し、ユーザーに特定の画像をクリックするように求めるアンチボットを作成しています。ただし、ソフトウェアがどの画像が表示されているかを分析して判断できないように、毎回画像に小さなランダムな変更を加えたいと思います...

毎回ランダムな色でランダムな座標に水平線と垂直線を1本追加し、get_file_contentsとヘッダーを使用して画像を表示したいと思います。

これが理にかなっていることを願っています...変更を画像に保存せずに、ユーザーにのみ表示したいです...次のように、file_get_contentsとheaderを使用して画像を表示しています:

$id = $_GET['id'];
$image = "images/".$id . ".jpg";
$content = file_get_contents($image); 
header('Content-Type: image/jpeg');
echo $content;
exit()

ありがとう...

4

2 に答える 2

0

PHP内でGDを使用すると、これを行うことができます

http://php.net/manual/en/book.image.php

image.php というファイルを作成します

PHPマニュアルから:

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>

imageline 関数を使用して線を追加できます

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imageline($im, $x1, $y1, $x2, $y2, $orange);
imagepng($im);
imagedestroy($im);

?>
于 2013-04-13T12:27:51.830 に答える
0

これを達成するために利用できる非常に多くのPHP GD関数があります。以下のコードスニペットが役立つと思います

<?php

$im = imagecreatefrompng("images/yourImage.png");
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Draw a vertical dashed line
imagedashedline($im, 50, 25, 50, 75, $white);

// Save the image
imagepng($im, './imagewithdashedline.png');
imagedestroy($im);
?>

PHP GD imagedashedline 関数の参照

于 2013-04-13T12:31:15.813 に答える