Drupal动态调整图像大小

时间:2015-06-22 09:52:34

标签: image drupal drupal-7

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

我有一些大图像(例如2000x2000px),我想要显示例如100x100px。

我知道有一个theme_image_style功能。但它接缝只能创建具有正确尺寸的[image_style_create_derivative][2]并且无法有效调整图像大小。

我查看modules / images / image.admin.inc,他们使用函数[woocommerce_cart] – shows the cart page [woocommerce_checkout] – shows the checkout page [woocommerce_order_tracking] – shows the order tracking form [woocommerce_my_account] – shows the user account page

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

答案 1 :(得分:1)

在回答您对MilanG的回答时,使用image_style_url()是后端的最佳选择。还有

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

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