Ho un codice che crea l'effetto watermark su delle immagini di un forum, attualmente il watermark (una scritta su un rettangolo semiopaco) viene posizionata in alto e in basso.
Vorrei invece che l'immagine venisse invece posizionata esattamente al centro sia in verticale che in orizzontale, qualcuno pratico mi darebbe una mano?

Grazie mille :)

ecco il codice:

Codice PHP:
$tempimage='';
$referers_count=0;
$referers=array();
if(
$vbulletin->options['watermark_referer']) {
    
$referers=explode(',',$vbulletin->options['watermark_referer']);
    if(empty(
$_SERVER['HTTP_REFERER'])) {
        
$referers_count=1;
    }
    else {
        
str_replace($referers,'',$_SERVER['HTTP_REFERER'],$referers_count);
    }
}

if(!isset(
$_SERVER['HTTP_RANGE'])
    &&
in_array($extension,array('jpg','png','gif'))
    &&
$attachmentinfo['dateline']<TIMENOW-$vbulletin->options['watermark_days']*86400
    
&&(!$referers||($referers&&!$referers_count)))
{
    if(
$vbulletin->options['watermark_thumb']&&empty($vbulletin->GPC['thumb'])) {
        
$clearfname DIR.'/'.$vbulletin->options['cleargifurl'];
        if( 
file_exists($clearfname) && $fp2 fopen($clearfname,'rb') ) {
            
header('Content-Length: 'filesize($clearfname));
            
header('Content-type: image/gif');
            @
fclose($fp);
            
$fp $fp2;    
            
$lastbyte filesize($clearfname)-1;    
        }        
    }    else {        
    
        
$wm_t = @imagecreatefrompng($vbulletin->options['watermark_path_top']);
        
$wm_b = @imagecreatefrompng($vbulletin->options['watermark_path_bottom']);
                    
        if (
strtolower($extension) == "gif") {
            
$im_a = @imagecreatefromgif($attachpath);
        }
        else if(
strtolower($extension) == "jpg") {
            
$im_a = @imagecreatefromjpeg($attachpath);
        } 
        else if(
strtolower($extension) == "png") {
            
$im_a = @imagecreatefrompng($attachpath);
        }
    
        if(
$im_a) {
            
$tempimage = @imagecreatetruecolor(imagesx($im_a), imagesy($im_a));
            
imagecopy($tempimage$im_a,    0000imagesx($im_a), imagesy($im_a));
            
$im_a $tempimage;    
    
            if(
$wm_t&&imagesx($im_a)>imagesx($wm_t)) {    
                
imagefilledrectangle($im_aimagesx($im_a) , imagesy($wm_t) , imagecolorallocatealpha($im_a000100) );
                
imagecopy($im_a$wm_timagesx($im_a)-imagesx($wm_t), 000imagesx($wm_t), imagesy($wm_t));
            }
            if(
$wm_b&&imagesx($im_a)>imagesx($wm_b)) {    
                
imagefilledrectangle($im_aimagesy($im_a)-imagesy($wm_b) , imagesx($im_a) , imagesy($im_a) , imagecolorallocatealpha($im_a000100) );
                
imagecopy($im_a$wm_bimagesx($im_a)-imagesx($wm_b), imagesy($im_a)-imagesy($wm_b), 00imagesx($wm_b), imagesy($wm_b));
    
            }
    
            
$tmpfname tempnam($vbulletin->options['tmppath'],'watermark_');
            
            if (
strtolower($extension) == "gif") {
                
imagegif($im_a,$tmpfname);
            }
            else if(
strtolower($extension) == "jpg") {
                
imagejpeg($im_a,$tmpfname);
            } 
            else if(
strtolower($extension) == "png") {
                
imagepng($im_a,$tmpfname);
            }        
                
            if(
$wm_timagedestroy($wm_t);
            if(
$wm_bimagedestroy($wm_b);
            
imagedestroy($im_a);
    
            if( 
file_exists($tmpfname) && $fp2 fopen($tmpfname,'rb') ) {
                
header('Content-Length: 'filesize($tmpfname));
                @
fclose($fp);
                
$fp $fp2;    
                
$lastbyte filesize($tmpfname)-1;    
            }
        }
    }

ed ecco come appare il watermark: