【问题标题】:Drupal resize image on the flyDrupal 动态调整图像大小
【发布时间】:2015-06-22 09:52:33
【问题描述】:

是否可以动态调整图像大小并使用 Drupal 缓存结果?

我有一些大图片(例如 2000x2000 像素),我想显示例如图片的预览。 100x100 像素。

我知道有一个theme_image_style 函数。但它似乎只创建具有正确大小的<img> 而不能有效地调整图像大小。

我查看了 modules/images/image.admin.inc,他们使用了函数[image_style_create_derivative][2]。

【问题讨论】:

    标签: image drupal drupal-7


    【解决方案1】:

    是的,您应该使用 Drupal 的图像样式(配置 -> 媒体 -> 图像样式)。在那里你应该创造你的风格。

    然后,在前端,当您想要显示具有该样式(以该分辨率)的图像时,您可以使用 image_style_url() 函数:

    https://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7

    它接受2个参数-一个是图像样式机器名称,另一个是图像URI,如果你打印出所有图像字段属性就可以得到。

    您还可以从后端界面选择图像样式...即在为某些图像创建视图时,您可以选择以特定的图像样式显示。

    在这两种情况下,这些图像样式都是在第一次使用图像时生成的。

    【讨论】:

    • 感谢您回答我。您知道不使用 Drupal 后端的解决方案吗?仅通过使用 PHP。
    • 您也可以自己完成,使用 PHP 图像处理库,如 GD 库或 Image magic。
    【解决方案2】:

    针对您对 MilanG 答案的评论,使用 image_style_url() 是后端的最佳选择。还有

    https://www.drupal.org/project/resp_img

    这可能是值得研究的事情。从用户体验的角度来看,您不希望用户每次加载页面时都加载 2000x2000 像素的图像。无论输出大小如何,图像仍将呈现为 2000x2000 像素的大尺寸图像。 image_style_url() 或在 GUI 中使用图像样式创建一个加载速度更快的新文件,是首选方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      相关资源
      最近更新 更多