有没有办法在服务器上显示图像缩小和调整大小而不保存缩小的图像?就像图像是500x500 250KB一样,我希望它在用户的浏览器中显示50x50 45kb。
如果没有办法,我怎样才能临时创建一个文件夹,并在粘贴一段时间之后删除?
答案 0 :(得分: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);
但是你应该以某种方式缓存结果以降低服务器上的负载。
答案 1 :(得分:0)
我强烈建议,不要试图调整大图像的大小,而是在上传时存储较小的版本并保留原始版本。使用像S3这样的云托管,你可以很便宜地做到这一点。
最合乎逻辑的过程是执行昂贵的操作(缩放照片)一次而不是多次。
在回答您的其他问题时,您可以使用GD或imagemagick缩小图像。有数百个关于如何做到这一点的教程。如果你想沿着这条路走下去,我会谷歌一个教程,然后去吧。
答案 2 :(得分:-1)
听起来您想要做的就是设置HTML图片代码的height
和width
属性。
<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