0

我在一个项目中使用 LiipImagineBundle 和 AWS SDK。一切正常,但现在我想创建一个水印过滤器。在 Liip 文档中,他们说我们必须在配置中告知水印图像的路径是什么。

我的问题是这条路径是动态的,因为它可以从一个图像更改为另一个图像。它也存储在 S3 中。

在旧版本的 Liip 中,我扩展了 ImagineController 以添加一些逻辑。但是,捆绑包已经完全改变了,我以前做的事情不再起作用了。

我还在 github 上看到了一个解决方案,其中开发人员正在向 twig 中的过滤器添加配置。我试过了,但没有用:

{% set runtimeConfig = {"watermark": {"size": 1, "image": 'http://' ~ amazon_s3_media_url ~ '/establishment/' ~ establishment.watermarkPath, "position": 'bottom' }} %}
{% set url_photo_medium = photo.imagepath | imagine_filter('photo_high', runtimeConfig) %} 
<img src="{{ url_photo_medium }}" alt="">

我不确定这是否是一个很好的解决方案,即使它有效,因为它不是动态的。有谁知道这个问题的最佳解决方案是什么?

谢谢!

4

1 回答 1

0

在 Github 和其他网站上搜索后,我了解到尚无法将存储在 S3 上的图像用作水印。原因是过滤器水印不接受 URL 作为图像路径。所以解决方案是将水印图像存储在本地文件系统上。

此外,对于动态过滤器,还有一个 runTimeConfig 可以直接在 Twig 上使用:

{% set runtimeConfig = {"thumbnail": {"size": [50, 50] }} %}
<img src="{{ '/relative/path/to/image.jpg' | imagine_filter('my_thumb', runtimeConfig) }}" />
于 2015-08-21T15:06:54.290 回答