我必须从php文件生成背景图片,但我无法让它正常工作。这是我的情况:
我有一个javascript行我在这里调用php文件:
document.body.style.background = 'url(http:/...../getBackground.php) no-repeat center center fixed';
在getBackground.php文件中,我必须从包含一个(可以更改)图像的文件夹生成背景图像。我是这样做的:
$dir = 'images/';
$arr = scandir($dir);
$images = array();
$pattern = '([^\s]+(\.(?i)(jpg|png|gif|bmp))$)';
foreach($arr as $file){if(preg_match($pattern, $file)){$images[] = $file;}} //get only the images from the folder
$count = count($images);
$i = mt_rand(0, $count - 1); // pick a random image
header("Content-type: image/png");
$photo = 'images/' . $images[$i];
$src_img = imagecreatefrompng($photo);
imagepng($src_img);
但有些事情是错误的,因为我没有正确显示图像。有人可以帮忙吗?我错过了什么?
非常感谢!干杯!
答案 0 :(得分:1)
问题的一部分是你非常具体地输出png数据,但允许使用jpg,png,gif和bmp源文件。
这应该在服务器上更快更容易。这不会每次都重新创建一个图像,它只是通过现有图像。
<?php
$dir = 'images';
$ext = 'jpg,gif,png'; // List the desired image extensions here, comma separated.
$images = glob($dir.'/*.{'.$ext.'}', GLOB_BRACE);
$random = $images[array_rand($images)];
$image_type = exif_imagetype($random);
header("Content-type: " . image_type_to_mime_type($image_type));
readfile($random);
?>