Php 图像保存、大小调整
我有一个基本问题。我有一个项目,我需要一张图片的更多尺寸 是的。。。在上传过程中,你可以制作缩略图。。。等等我知道这个故事。。。性能与存储的可能性。 所以我保存了原始的img,a制作了两个缩略图副本,例如最大宽度100px和最大宽度200px。 现在我需要显示图像在150px的最大宽度,所以我采取保存的img(200px)和 我使用getimagesize()计算显示宽度和高度与比率的关系, 或者我设置了最大宽度和最大高度,并将其留给浏览器(浏览器为我制作), 或者我将宽度设置为“保持高度:自动”(但我还希望限制最大高度) 所以,实际上我使用php和getimagesize(),但是这个函数每次都可以处理文件,我有点害怕。当你处理1个img时,它是可以的,但是20或100个呢 而且。。。另一个想法是,在上传的同时,我还保存了数据库的大小信息,为此,我必须保存3img的数据(现在只有原来的一个),这使一切变得复杂Php 图像保存、大小调整,php,html,css,performance,Php,Html,Css,Performance,我有一个基本问题。我有一个项目,我需要一张图片的更多尺寸 是的。。。在上传过程中,你可以制作缩略图。。。等等我知道这个故事。。。性能与存储的可能性。 所以我保存了原始的img,a制作了两个缩略图副本,例如最大宽度100px和最大宽度200px。 现在我需要显示图像在150px的最大宽度,所以我采取保存的img(200px)和 我使用getimagesize()计算显示宽度和高度与比率的关系, 或者我设置了最大宽度和最大高度,并将其留给浏览器(浏览器为我制作), 或者我将宽度设置为“保持高度:自动
所以。。。有什么想法吗?你的做法是什么?THX.最多两张图像:缩略图和原始图像就足够了。确保你的上传页面是安全的,因为我看到过一个网站通过DoS被关闭(滥用未受保护的图像调整页面)。还可以限制最大上载大小,以防止滥用 您可以使用
max width
和max height
CSS属性来限制图像的大小。My approach
不久前,我用php编写了一个非常简单的gallery应用程序,其工作原理如下:
图像存储在一个文件夹中,其中包含表示相册(和子相册)的子文件夹。它们是通过FTP上传的,Web服务器对它们只有读取权限
对于每个图像,有三个版本:
- 完整的(原件)
- 一个“中等”的(最大1024x768px)
- 一个“拇指”型(最大250x250px)
- 动态:在请求时生成/更新它们
- 上传过程中:让上传过程中调用的例程完成工作
- 在后台:让上载例程将作业添加到在后台工作的队列中(可能是最可伸缩的,但实现和部署起来也相当复杂)
对于一个小网站来说,你选择哪种方法并不重要。一些有效的东西(即使它不能扩展)也可以。如果你打算获得大量的流量和稳定的上传流,那么明智地选择并仔细地进行基准测试。如果你最终只使用CSS调整1mb+图像的大小,那就不太好了;导致用户无理由下载大型图像。至少应该实施某种形式的动态调整大小和缓存,除非你对上传的内容有很大的控制权。是的,再次。。。我们正在开始讨论存储更多大小的图像或调整大小。。。我真正的问题是如何处理存储的图像。。。“最大宽度”和“最大高度”看起来不错,但为什么像facebook这样有这么多照片的大网页不使用这种方法呢?它们与高度和宽度直接相关。我的问题是getimagesize()太糟糕了还是他们使用了其他东西。。。他们如何获得图像的宽度和高度?他们将这些信息存储在数据库中或使用一些软件……比如说,
150x150px
的缩略图足够小,可以调整大小为更小的缩略图。例如,可以通过链接来链接未缩放的图片@RobertMulinskygetimagesize()
还不错。例如,我只是指出,您不应该实现
。您可以使用file\u exists
和filemtime
。如果原始文件较新,修改时间将与原始文件进行比较,并重新生成缩略图。