【发布时间】:2018-01-17 12:54:21
【问题描述】:
我将 SVG 用于 TYPO3 网站上的页面图标。页面图标作为资源媒体存储在页面属性中。通常我也将它们用于开放图形和 Twitter 图像。但是 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-image 以防 GIFBUILDER 可能对 svg 有问题。
也许 file: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
}
}
}
}
如果资源媒体是 svg,这会给我正确的图像。如果我的资源媒体是 SVG,我会收到此错误:
1476107295:PHP 警告:imagecreatetruecolor():/usr/www/users/abppjo/typo3/typo3_src-8.7.9/typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php 第 2867 行中的图像尺寸无效(更多信息)
:´-(
【问题讨论】:
标签: svg typo3 filepath typoscript