Php gd如何在不保存的情况下为每个用户显示图像

时间:2012-09-24 09:52:01

标签: php facebook-graph-api php-gd

我想要一个帮助,我使用php gd创建了一个facebook应用程序。该程序是当用户打开应用程序时会出现一个图像。该图像包含用户的用户名,个人资料图片和随机生成的昵称。我保存将输出图像作为resized.jpg输出到服务器,并使用facebook图将该图像发布到用户墙。 问题是当2个用户同时使用该应用程序时,输出会有所不同。 如何为每个用户生成图像而不将其保存到服务器并发布到Facebook。 现在iam使用html img标签在app中显示图像..

2 个答案:

答案 0 :(得分:0)

答案很简单:每个用户的图像文件名必须具有不同的名称。如果您在$uid变量中有用户ID,为什么不将目标文件保存为:

imagejpeg( $rImg, "resized".$uid.".jpg" );

这样每个用户就可以拥有不同的图像。

答案 1 :(得分:0)

您可以将生成的图像直接输出给用户,而不是将文件保存为服务器“resized.jpg”。从http://php.net/manual/en/function.imagejpeg.php开始,它将filename设置为NULL,这会导致输出发送给用户而不是文件。注意:您可能还需要使用标题函数设置正确的Content-Type。

此方法是Tomasz的替代方法。使用他的方法,每个图像都缓存在您的服务器上。使用我的,每次请求页面时都会生成图像。以下是显示差异的示例:

<img src="http://example.com/resized1234.jpg"> #1234 is the user's id
<img src="http://example.com/generate-image.php?uid=1234">

在你的情况下,你说你将图像直接发布到Facebook,所以我会建议我的方法,因为如果你将图片发布到他们的网站上,Facebook会存储自己的图像副本,而不需要缓存。此外,您的网站上不会有其他用户的图像堆积。

如果您需要我在答案中澄清任何内容,请告诉我们。