2013-04-13 128 views
0

我制作了一张显示不同图片的抗体,并要求用户点击特定的图片。但是,我希望每次都对图片进行一些小的随机更改,以便软件无法分析和确定显示哪张图片...如何在图像上绘制垂直线在php

我想要添加一条水平线和一条垂直线随机坐标随机颜色到图片每次,然后使用get_file_contents和标题显示图片。

希望这是有道理的......我不想更改保存到图片,但只显示给用户...我使用的file_get_contents和页眉中显示的图片,就像这样:

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

谢谢...

+0

使用[PHP的GD扩展](http://php.net/manual/de/book.image.php)即时修改输出。另请注意,只有一些线路不足以转移OCR机器人的验证码。 (只要您的网站足够模糊,并且没有人愿意适合您的表单域,它就可以用于您的案例。) – mario

回答

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); 

?> 
0

有这么多的PHP GD functions available to achive this我想下面的代码片段可以帮助你

<?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 function