SonataMediaBundle 获取图片宽高

SonataMediaBundle get image width and height

我的模板中有一张图片:

{% media picture.media, 'reference' %}

如何获取该图片的宽度和高度?

我不知道你在寻找哪个答案,因为这个问题可以用不同的方式回答,所以我试图回答所有这些方式。


媒体对象上的吸气剂

如果您只是想从媒体对象中获取值,只需调用:

{{ picture.media.width }}
{{ picture.media.height }}

媒体渲染

Sonata 用于渲染媒体的 twig-extension 会自动将 width/height 添加到您的 html。

<!-- twig -->
{% media picture.media, 'reference' %}

<!-- renders -->
<img src="path/to/media" alt="media" width="256" height="256" />

媒体背景

它将始终呈现完整的媒体文件,无论其大小如何。 对 SonataMedia 提供的缩略图标签做同样的事情可以让您定义不同的尺寸,这些尺寸将以您配置的尺寸呈现。看看introduction to SonataMedia's context configuration.

# app/config/config.yml

sonata_media:
    contexts:
        news:
            formats:
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70}
<!-- twig -->
{% thumbnail picture.media, 'small' %}

<!-- renders (note, height will be recalculated automatically by it's ratio) -->
<img src="path/to/media" alt="media" width="100" height="100" />