是否可以动态调整图像大小并使用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
。
答案 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中使用图像样式创建一个新文件,加载速度更快,是首选方法。