我有一个存储FileReference
的模型。现在我想在Extbase控制器中创建一个带有水印的图像。有人知道我要去哪里吗?我只找到了带有typoscript的解决方案。
答案 0 :(得分:2)
我选择了TypoScript方式并且效果很好。
流体:
<f:cObject typoscriptObjectPath="lib.tx_myext.watermarkedImage" data="{imageUid:'{image.uid}',copyright:'{image.copyright}')}'}"/>
的TypoScript:
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
}
}
}
结果是带有白框的图像,右下角有版权文字。
答案 1 :(得分:1)
我认为最简单的方法是使用typoscript解决方案。这不一定是纯粹的typoscript,但是typoscript的数据结构可能需要作为GifBuilder类的核心函数的参数。 TYPO3 7.6 API
GifBuilder类继承自可以使用的类GraphicalFunctions,因为只有少数添加,主要功能在这里。
最后一个问题是根据这项任务在网络中的例子:它们是有效的,所有这些都以类似
的方式结束$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();
}