因为需要对上传的图片进行压缩与裁剪,因此使用了image style的’scale and crop’;然后就遇到一个问题:某个自定义的paragraph下的图片在前端显示的还是原图,感觉并没有被裁剪。
一开始以为是裁剪未生效,但是发现其他地方的裁剪都生效了,又怀疑是paragraph的问题,然后又进行了各种排除测试,终于发现出现问题的都是覆写了twig模板的地方。终于发现在模板中使用的图片原地址。于是准备更改为裁剪后的地址,但是通过hook_preprocess_paragraph发现$variables中就没有裁剪后的地址。
卡了很久,最后发现可以在模板中使用image style,这样才解决了这个问题:
{% set hexagon_image = {
'#theme': 'image_style',
'#style_name': 'two_columns_hexagon',
'#uri': para.entity.field_image.entity.uri.value,
'#alt' : para.entity.field_image.alt
}
%}
<div class="image-wrapper">
{{ hexagon_image }}
<span class="icon-video"></span>
</div>
效果: