PHP动态调整大小和水印图像或创建多个版本?

时间:2013-11-20 11:58:32

标签: php image-processing gd bandwidth watermark

我有500多张图片的集合,这些图片已经重新调整为最大800px x 533px,需要根据特定类别中的数字显示各种尺寸的缩略图,因此截面宽度例如650px填充在2/3/4列的照片中。这些图像计划在许多不同的域上使用,每个域都有一个单独的水印。

因此,我编写了一个脚本,根据某些参数(宽度/高度/宽高比)重新调整图像大小,然后即时添加水印。我之所以这样做,是因为我希望节省服务器空间并尽可能保持动态显示,这样可以让水印缩略图和完整照片在不同的域上以不同的尺寸显示。

我的问题是:

  1. 我是否在使用即时水印方法方面做了正确的事情?

  2. 我最好不要在较小的尺寸(300px x 200px)中保存未加水印的照片副本,并参考那些缩略图?

  3. 我是否应该为每张照片(也可能是缩略图)创建一个具有指定徽标的水印,并将其保存到单个域文件夹中?即使这意味着大量重复

  4. 非常感谢您的建议

1 个答案:

答案 0 :(得分:3)

你使用Image Magick吗?

您有理由想要动态地执行此操作以及为什么不这样做。两种方法都是有效的。以下是利弊:

  • 如果缓存图像,性能会更好。服务器空间 - 您认为这是一个问题 - 如今很便宜,不应该成为一个因素。另一方面,延迟会导致糟糕的用户体验
  • 您的脚本可能无权执行您编写的图像处理脚本,如果您动态执行此脚本,则可能更依赖服务器。
  • 如果您决定更改缩略图的大小,则在动态方案中,您不需要重新生成所有缩略图,因为您不存储它们。
  • 水印:选择为要保护的图像添加水印。如果缩略图用于快速查看大文件(“敏感”资产),则不要为缩略图添加水印。

这些只是一般规则。没有什么是一成不变的。

在我自己的服务器上(我使用wordpress),在图片上传时生成缩略图。当访客点击我的页面时,这给了我更好的观看表现。但是,如果我决定重新设计我的网站并更改缩略图格式,我必须重新生成所有图片。