为图像抓取自定义网址并通过AJAX调整大小

时间:2011-08-11 15:15:34

标签: php javascript ajax imagemagick thumbnails

我正在构建一个网络应用程序,用户可以在其中存储200x200图片相关的链接。默认情况下,我想抓取图像的链接,然后返回最大的缩略图(用户可以从中选择“官方”缩略图)。我希望通过AJAX实现这一切。我的问题是:最好的方法是什么?

目前,我正在使用PHP Simple HTTP Parser来扫描网址。然后,我找到所有src代码的<img>属性,使用getimagesize存储位于该网址的图片大小,将数组从最大到最小排序并返回前5大图片URL通过AJAX发送给客户端。然后客户端为每个发送一个不同的AJAX请求,使得服务器端ImageMagick脚本下载并将图像剪切为缩略图,将其保存在临时文件夹中,然后返回该缩略图的URL,客户端最终加载该缩略图浏览器。

毋庸置疑,这有点复杂,可能效率很低。在http://en.wikipedia.org上运行此过程从开始到结束大约需要10-15秒。但是,我不确定是否有更有效的方法。

3 个答案:

答案 0 :(得分:0)

我会在一个AJAX请求中执行此操作,脚本会在第一次传递时自动调整最大的5个图像,保存它们,并返回带有客户端调整大小的图像URL的JSON数组。

答案 1 :(得分:0)

你应该使用PHP的DOMDocument类来获取/解析html页面。

getimagesize()表示您必须下载每张图片并进行处理。也许您应该考虑简单地向用户显示所有图像,只需将img标记链接回原始HTML页面即可。您可以使用标签来调整大小。这样,您不必下载/处理单个图像,直到用户实际为缩略图选择了一个图像。

答案 2 :(得分:0)

有兴趣是否/如何解决这个问题?

最后,我通过getimagesize()的图像循环,直到高度和宽度都超过一定的大小,然后打破了循环。

这样它的效率稍高,因为它只需要下载所需数量的图像