我在TYPO3网站上使用SVG作为页面图标。页面图标作为资源媒体存储在页面属性中。 Usualy我也将它们用于开放图形和推特图像。但Open Graph不支持SVG。
现在我想使用GIFBUILDER将SVG转换为PNG并返回转换后的GIFBUILDER-Image的文件路径。我找不到任何提示,所以我请求你帮忙。
BSP:
headerData {
60 = FILES
60 {
#gets image form media tab of page
references {
table = pages
uid.data = page:uid
fieldName = media
}
**# This returns the path of the ressource media**
renderObj = TEXT
renderObj {
typolink {
parameter.data = file:current:publicUrl
forceAbsoluteUrl = 1
returnLast = url
}
wrap = |,
}
**# But I have SVGs so I have to convert them. Therefor empty renderObj**
renderObj >
renderObj = GIFBUILDER
renderObj {
XY = 200,200
format = png
quality = 100
10 = IMAGE
10.file = file:current:publicUrl
}
stdWrap {
listNum = 0
# Use logo image if none is available
ifEmpty.cObject = TEXT
ifEmpty.cObject.typolink {
parameter = {$defaultsocialimg}
forceAbsoluteUrl = 1
returnLast = url
}
wrap = <meta property="og:image" content="|">
}
}
}
有没有人有想法? 谢谢 马丁
修订版1:
我改变了我的TYPOSCRIPT并结合了下面的答案(谢谢你们两个)并做了这个:
ogimage = IMG_RESOURCE
ogimage {
10 = FILES
10 {
references {
table = pages
uid.data = page:uid
fieldName = media
}
begin = 0
maxItems = 1
renderObj = TEXT
renderObj {
typolink {
parameter.data = file:current:publicUrl
forceAbsoluteUrl = 1
returnLast = url
}
}
}
file = GIFBUILDER
file {
XY = 200,200
format = png
10 = IMAGE
10.file.data = file:current:publicUrl
10.file.forceAbsoluteUrl = 1
}
wrap = |
}
现在我真的得到了图像的路径。但是1.图像是空的/白色的,2。尽管“forceAbsoluteUrl =”,但路径并不是绝对的。 2.这不是一个大问题。但第一个...我也尝试了一个jpg图像,以防GIFBUILDER可能与svg有问题。
可能文件:current:publichUrl在该位置无效(file.10.file)。我尝试过LOAD_REGISTER,但无法想象放在哪里。
修订版2:
好的,差不多完了:新的TS:
lib.ogimage = FILES
lib.ogimage {
references {
table = pages
data = levelmedia: -1, slide
fieldName = media
}
begin = 0
maxItems = 1
renderObj = COA
renderObj {
5 = LOAD_REGISTER
5.imagepath.data = file:current:publicUrl
#TEST if the path is correct
10 = TEXT
10.value.data = REGISTER:imagepath
#20 = IMG_RESOURCE later for path-output
20 = IMAGE
20 {
file = GIFBUILDER
file {
XY = 200,200
format = png
10 = IMAGE
10.file.import.data = REGISTER:imagepath
}
}
}
}
如果资源媒体是&lt;&gt;,这给了我正确的图像。 SVG。如果我的资源媒体是SVG,我会收到此错误:
:' - (
答案 0 :(得分:0)
GIFBUILDER
将在IMAGE
或IMG_RESOURCE
ContentElement下使用:
lib.test = IMAGE
lib.test.file = GIFBUILDER
lib.testUrl = IMG_RESOURCE
lib.testUrl.file = GIFBUILDER
如果您想获得GIFBUILDER
图片的路径,则必须使用IMG_RESOURCE
。
答案 1 :(得分:0)
尝试下面的typoscript。
>>> import sympy
>>> a, c = sympy.symbols('a c', commutative=False)
>>> b = sympy.Symbol('b')
>>> expr = a * c + b * c
>>> factor(expr)
(b + a)*c
>>> S(str(_))
c*(a + b)