【问题标题】:SonataMediaBundle get image width and heightSonataMediaBundle 获取图像宽度和高度
【发布时间】:2017-05-23 11:32:35
【问题描述】:

我的模板中有一张图片:

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

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

【问题讨论】:

    标签: symfony sonata sonata-media-bundle


    【解决方案1】:

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


    媒体对象上的获取器

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

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

    媒体渲染

    Sonata 用于渲染媒体的 twig-extension 会自动为您的 html 添加宽度/高度。

    <!-- twig -->
    {% media picture.media, 'reference' %}
    
    <!-- renders -->
    <img src="path/to/media" alt="media" width="256" height="256" />
    

    媒体背景

    它将始终呈现完整的媒体文件,无论其大小。 对 SonataMedia 提供的 thumbnail-tag 执行相同的操作可以让您定义不同的大小,而不是按照您配置的大小呈现。看看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" />
    

    【讨论】:

    • 非常感谢。这正是我想要的!