我想使用GIFBUILDER来制作一个带有覆盖的图像。因此,图像应该通过FLUID来传递。
这是我目前所拥有的。
FLUID
<f:for each="{product.images}" as="image">
<f:cObject typoscriptObjectPath="lib.overlay" data="{image: image.uid}" />
</f:for>
TypoScript
lib.overlay = IMAGE
lib.overlay {
file = GIFBUILDER
file {
XY = 300,500
format = jpg
quality = 80
10 = IMAGE
10 {
file.import = {field:image}
file.import.insertData = 1
file.import.treatReferenceAsId = 1
}
20 = TEXT
20 {
text = Copyright
fontColor= #dddddd
fontSize = 30
offset = 100,100
align = left
antiAlias = 1
}
}
}
目前,我只得到一个白色的背景,上面有版权标签。然而,如果我做一些像
10 = IMAGE
10.file = fileadmin/path/to/file
都能正常工作。
所以我的问题是:我如何正确地将FLUID中的图像传递给TypoScript?
除此之外,我如何通过FLUID从Contentelement中传递一个值来使覆盖的文本也是动态的?
最诚挚的问候和提前感谢
更新。
替换
10 = IMAGE
10 {
file.import = {field:image}
file.import.insertData = 1
file.import.treatReferenceAsId = 1
}
与
10 = IMAGE
10 {
file.import.field = image
file.treatIdAsReference = 1
}
treatReferenceAsId
应是 treatIdAsReference
. 这也是一个属性 file
,不属于 file.import
. 我不知道为什么 file.import = {field:image}
和 insertData = 1
不见得,但 file.import.field = image
确实如此。反正比较干净,所以我才试了一下。
你可能还想给图像添加一个宽度和高度或maxW和maxH,除非你100%确定它们总是300x500像素。