如何将div的背景图像属性设置为动态生成的图像

时间:2010-05-03 16:53:57

标签: php jquery image-manipulation gd

我有一些div,每个都有自己的背景图片。存储的基本图像只是黑色轮廓。

我想要做的是使用PHP GD包稍微随机地修改这些图像的颜色,并将修改后的随机彩色图像作为div的背景图像。

一种方法是从原始文件创建GD图像​​结构,修改它们,将结果保存为临时文件,将此文件名传递到客户端,然后使用jquery修改css背景图像属性div成为新文件。但这将留下大量垃圾收集文件。

有没有办法在不创建一堆文件的情况下做到这一点?

1 个答案:

答案 0 :(得分:1)

如果它只是“有点随机”,那么您也可以预先生成您想要使用的所有变体。必须在运行中构建映像的CPU /内存开销将快速超过预构建所花费的时间。

如果你真的不希望有静态版本,只需使用image???()调用,不要指定输出的文件名。这会将完成的图像直接发送到客户端,因此您只需指定一个css规则:

div.randombg {
    background-image: url(/randomimage.php);
}

剧本将归结为:

<?php

...  GD stuff to build image here ...
header("Content-type: image/jpeg");
imagejpg($gdhandle);
exit();

如果您希望每个用户的背景保持相对稳定,您可以在cookie /会话中设置一个标志,告诉图像生成脚本发送“未修改”标题,以便客户端可以重新使用之前的建立图像而不是强迫它为每次击中而改变。