2017-05-31 59 views
1

我有一個模型存儲FileReference。現在我想在Extbase控制器中創建一個帶有水印的圖像。有人知道我必須尋找的地方嗎?我只找到了錯別字的解決方案。用extbase創建水印的圖像

+0

我前段時間在流體模板中使用了''。我考慮爲呈現問題添加水印,並因此喜歡將其從控制器中取出。最後,TypoScript正在進行實際疊加,但您可以從Fluid中設置尺寸等。你的情況可以接受嗎? – undko

回答

1

我認爲最簡單的方法是使用typoscript解決方案。這不能作爲純粹的輸入框,但是輸入框的數據結構可能需要作爲GifBuilder類核心功能的參數。 TYPO3 7.6 API

GifBuilder類繼承自類GraphicalFunctions,它也可以使用,因爲只有少數幾個附加項,主要功能在這裏。

最後一個問題是根據這個任務在網的例子:他們pibased和他們都最終在像

$img = $this->cObj->IMAGE($typoScriptArray); 
現代(命名空間)符號

使用當前的API,這將是:

$gifCreator = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\GifBuilder::class);  
$gifCreator->init();  
$theImage=''; 
if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib']) {  
    $gifCreator->start($fileArray, $typoScriptArray); 
    $theImage = $gifCreator->gifBuild(); 
} 
2

我選擇TypoScript的方式,它工作得很好。

液:

<f:cObject typoscriptObjectPath="lib.tx_myext.watermarkedImage" data="{imageUid:'{image.uid}',copyright:'{image.copyright}')}'}"/> 

Typo腳本:

lib.tx_myext.watermarkedImage = IMAGE 
lib.tx_myext.watermarkedImage { 
    file = GIFBUILDER 
    file { 
     XY = [10.w],[10.h] 
     format = jpg 

     10 = IMAGE 
     10 { 
      file { 
       import.field = imageUid 
       treatIdAsReference = 1 
       width = 1162 
       height = 580c 
      } 
     } 

     20 = BOX 
     20 { 
      color = #FFFFFF 
      opacity = 70 
      dimensions = [10.w]-[30.w]-10,[10.h]-20,[30.w]+20,[30.h]+20 
     } 

     30 = TEXT 
     30 { 
      text.data = field:copyright 
      fontSize = 15 
      fontColor = #000000 
      fontFile = path/to/my/font.ttf 
      offset = [10.w]-[30.w]-5,[10.h]-5 
     } 
    } 
} 

結果是一個白色盒子,並在右下角就可以了版權文本的圖像。