从php文件生成背景图像 - javascript

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

但是出了点问题,因为我没有正确显示图像。有人可以帮忙吗?我想念什么?

非常感谢!干杯!

参考方案

问题的一部分是您非常具体地输出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);

?>

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

对ID为'abc%'的dom执行操作 - javascript

我想对ID为'abc%'的DOM进行一些操作<a id='abc1'></a> <a id='abc2'></a> <a id='abc3'></a> <a id='abc4'></a>…

Javascript-Python:将动态生成的图像提供给客户端浏览器? - php

场景:用户加载页面,正在生成图像,显示加载栏,通知事件已发送到浏览器。我正在使用python代码生成图像。拥有启动脚本或将Web服务器代码嵌入python脚本的Web服务器是否理想?图像完成渲染后,客户端应收到一条消息,说明图像成功并显示图像。如何设计它以同时支持并发用户?是否只需为每个导航到该网页的新用户启动python脚本就足够了?在这种情况下拥有实时W…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…

提交初始化后删除某些帖子数据 - javascript

在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …