2012-09-28 18 views
0

我需要从图像的预选数量从数组中选择一个随机图像并且使用该图像imagecreatefromjpeg()函数作为基础图像为一个水印码 我的代码。 imagecreatefromjpeg()函数不会从随机地址生成新图像。如何从图像数组中拾取随机图像并从jpg创建新图像并放入水印?

$isrc1 ="c1.jpg"; 
$isrc2 ="c2.jpg"; 
$isrc3 ="c3.jpg"; 
$isrc4 ="c4.jpg"; 
$isrc5 ="c5.jpg"; 
$isrcarray = array($isrc1,$isrc2,$isrc3,$isrc4,$isrc5); 

for ($i=0; $i<1; $i++) { 
$it = $isrcarray[rand(0, count($isrcarray) - 1)] . "\n"; 

} 

$box = @ImageTTFBBox(23,0,'arial.ttf',$userinfo[0]['name']); 
$textwidth = abs($box[4] - $box[0]); 
$x_finalpos = 255-($textwidth/2); 
$image = imagecreatefromjpeg($it); 
$font_color = ImageColorAllocate($image,0,0,0); 
imagettftext($image, 23, 0, 101, 345, $font_color, 'arial.ttf', $userinfo[0]['name']); 
ImageJPEG($image, $img); 
ImageDestroy($image); 
$img = "result.jpg"; 
+1

那么,什么不起作用?你的随机化可以通过'shuffle($ isrcarray)'来简化' –

+0

你也可以使用'array_rand()'。 – complex857

+0

你需要解决你的问题,我们不知道你有什么问题,其次是你的代码中的一个小错误,你使用它后设置$ img。 – Tenerezza

回答

0

您可以使用

$it=$isrcarray[array_rand($isrcarray)]; 

代替,

$it=$isrcarray[rand(0,count($isrcarray)-1)]."\n";