从php文件生成背景图像

时间:2014-08-19 08:00:40

标签: javascript php

我必须从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); 

但有些事情是错误的,因为我没有正确显示图像。有人可以帮忙吗?我错过了什么?

非常感谢!干杯!

1 个答案:

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

?>