制作GIFBUILDER图像并返回文件路径

时间:2018-01-17 12:54:22

标签: svg typo3 filepath typoscript

我在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,我会收到此错误:

1476107295:PHP警告:imagecreatetruecolor():/usr/www/users/abppjo/typo3/typo3_src-8.7.9/typo3/sysext/core/Classes/Imaging/GraphicalFunctions.php 2867行中的图片尺寸无效(更多信息)

:' - (

2 个答案:

答案 0 :(得分:0)

GIFBUILDER将在IMAGEIMG_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)