如何将HTML块中的所有图像调整为特定宽度并缓存结果


How to resize all images in a block of HTML to a specific width and cache the results

我正在用PHP为定制CMS编写一个移动内容自适应插件。CMS包含指向具有绝对URL的图像的<img/>链接,这些URL都是400像素宽且高度不同。

我想解析HTML(存储在MySQL中),并将每个图像重新缩放到一个新的宽度——这将根据设备的不同而有所不同。我还想缓存图像,以防止每次加载页面时都不必要地调整它们的大小

对我来说,使用ImageMagick或GD在PHP中实现这一点的最佳方式是什么?

做一些不同的事情怎么样。基本上将缓存/调整大小卸载到随需应变模型。假设您的应用程序正在设备A上运行,该设备需要200x200个图像。您可以将图像链接更改为:

<img src="/images/image.php?height=200&width=200&source=filename.jpg" />

image.php可以是一个执行以下操作的脚本:

  • 请确保现有文件存在,如果存在该大小的文件,请从缓存中获取该文件
  • 如果没有,请调整图像大小并缓存它

下次你的应用程序查找该图像时,它会以200px的大小发送回来。或者,如果应用程序现在正在寻找300x300的图像,则会在新请求中构建/缓存该图像。

SEE使用PHP和MySQL缓存调整大小的图像的最佳方式
关于缓存机制(特别是apache Web服务器干预概念)的真正好的想法

http://phpthumb.sourceforge.net/它同时使用ImageMagick或GD进行封装。