function _applyWatermark($sSrcImage, $sDstImage, $sWtrImage, $iTransparency, $sPosition = 'bottom-right', $sPositionOffsetX = 0, $sPositionOffsetY = 0, $sScaleFactor = 0.2)
{
$this->_sError = '';
try {
$oImageOrig = $this->_oManager->make($sSrcImage);
$oImageOrig->insert($this->_oManager->make($sWtrImage)->resize(round($oImageOrig->width() * $sScaleFactor), round($oImageOrig->height() * $sScaleFactor), function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->opacity($iTransparency), $sPosition, $sPositionOffsetX, $sPositionOffsetY)->save($sDstImage ? $sDstImage : $sSrcImage, $this->_iJpegQuality);
chmod($sDstImage ? $sDstImage : $sSrcImage, BX_DOL_FILE_RIGHTS);
} catch (Exception $e) {
$this->_sError = $e->getMessage();
return IMAGE_ERROR_WRONG_TYPE;
}
return IMAGE_ERROR_SUCCESS;
}