2

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

如果没有办法,我如何临时创建一个到文件夹并在粘贴一段时间后删除?

4

3 回答 3

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);

但是您应该以某种方式缓存结果以降低服务器上的负载。

于 2011-01-28T01:28:04.173 回答
0

我强烈建议您不要在上传时尝试缩小大图像的大小,而是存储较小的版本并保留原始版本。使用像 S3 这样的云托管,你可以很便宜地做到这一点。

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

在回答您的其他问题时,您可以使用 GD 或 imagemagick 来缩小图像。有数百个关于如何做到这一点的教程。如果你想沿着这条路线走,我会谷歌一个教程并试一试。

于 2011-01-28T01:27:09.340 回答
-1

听起来您要做的就是设置 HTML 图像标记的heightwidth属性。

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

也可以使用百分比。

CSS 允许更多的控制,并且可以应用于所有图像(或某个类的所有图像)。有了它,您可以指定max-height并且max-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

于 2011-01-28T01:26:52.577 回答