我目前正在使用这个php代码在php页面上显示图像,其中一些文本由用户使用输入标记给出。
我的PHP代码是:
<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('img/1.jpg');
$white = imagecolorallocate($jpg_image, 73, 41, 236);
$font_path = 'OpenSans-Italic.TTF';
$text= $_GET['name'];
imagettftext($jpg_image, 25, 0, 75, 50, $white, $font_path, $text);
imagejpeg($jpg_image);
imagedestroy($jpg_image);
?>
此代码非常有效我使用$_GET['name'];
从用户那里获取输入,因为您可以看到我选择了一张图片,用户提供的文字将出现在我的图像名称为{ {1}}我的图书馆里有更多图片,我想要随机选择它们并在用户上打印文字我的其他图片名称是1.jpg
,2.jpg
,{{1}希望你能为我找到任何解决方案。
答案 0 :(得分:2)
其他答案假设您始终使用数值作为文件名,但如果您不能将文件名放在数组中并使用array_rand()
从数组中获取随机文件名,如下所示:
$image_files = array("1.jpg", "2.jpg", "3.jpg", "4.jpg");
$image_filename = $image_files[array_rand($image_files)];
$jpg_image = imagecreatefromjpeg("img/{$image_filename}");
请记住,array_rand()
会从数组返回一个随机密钥,而不是值。
从这里开始,您可以轻松地进一步使用glob()
从目录中获取文件名。执行此操作时,您应该考虑glob()
返回完整路径,因此您需要使用basename()
来获取文件名:
$image_files = glob("img/*.jpg");
$image_path = $image_files[array_rand($image_files)];
$image_filename = basename($image_path);
答案 1 :(得分:1)
假设您有15张图片,可以使用:
$randomNumber = rand(1, 15);
$jpg_image = imagecreatefromjpeg('img/' . $randomNumber . '.jpg');
答案 2 :(得分:0)
$countImages = 10; // your last number
$jpg_image = imagecreatefromjpeg('img/' . rand(1,$countImages). '.jpg');