2011-01-28 124 views
2

有没有办法在服务器上显示缩小图像并调整大小而不保存缩小的图像?就像图像是500x500 250KB,我希望它在用户的浏览器中显示50x50 45kb。PHP显示图像缩小和调整大小

如果没有办法,我该如何临时创建一个去文件夹并在稍后粘贴后再删除?

+1

这是可能的,但不是很理想,因为缩小图像非常昂贵。几十个同时请求调整大小的图像可能会给服务器带来很大压力。后者可能可以使用清理脚本(例如“删除所有超过1小时的文件”),但您必须添加更详细的信息才能获得有关该提示的提示 – 2011-01-28 01:24:18

回答

3
header("Content-type: image/jpeg"); 
$image = imagecreatefromjpeg($url); 
$thumbImage = imagecreatetruecolor(50, 50); 
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, 500, 500); 
imagejpeg($thumbImage,"",85); 
imagedestroy($image); 
imagedestroy($thumbImage); 

但是你应该缓存结果以降低服务器的负载。

+0

cooooool我不知道这 – 2011-01-28 01:31:23

-1

听起来你所要做的就是设置HTML图像标签的heightwidth属性。

<img src='blah' height=50 width=50 /> 

百分比也可以使用。

CSS允许多一点控制,并且可以应用于所有图像(或某个类的所有图像)。有了它,您可以指定max-heightmax-width,这不会影响较小的图像。下面将适用于所有图像与类resizedimages

.resizedimages {max-height: 400px; max-width: 400px} 

如果你不感兴趣的保存调整后的图像,然后这听起来像完全是一个客户端的问题。 PHP与它无关(除了可能呈现必要的HTML)

注意:如果用户去右击并保存在图像上,它仍然是完整的250kB。这些纯粹是显示问题。如果这个方面对你很重要,那么除了保存缩小的副本之外,我不知道任何其他方法。

这些可能不是最好的资源,只有几个出现在谷歌的顶部附近。

http://www.w3schools.com/tags/tag_img.asp
http://www.fastechws.com/tricks/web/image-max-width-height.php

0

我会强烈建议,而不是试图调整下来一个大的图像,你在上传时店的缩小版,并保持原来的版本。使用像S3这样的云托管,你可以做到这一点便宜。

最合乎逻辑的过程是一次执行昂贵的操作(缩放照片)一次而不是多次。

回答您的其他问题,您可以使用GD或imagemagick缩小图像。有数百个关于如何做到这一点的教程。如果你想要走这条路,我会Google教程,然后走了。