水印文字位置右下角

时间:2016-06-24 11:58:20

标签: php css watermark imagettftext placement

我使用以下代码设置水印,但它将水印设置为中心,我想将其设置在右下角位置。

<?php
function watermarkImage($fileget, $watermarktext, $saveto) 
    { 
        list($width, $height) = getimagesize($fileget);
        $image_p = imagecreatetruecolor($width, $height);
        $size = getimagesize($fileget);
        $dest_x = $size[0] - $width - 5;  
        $dest_y = $size[1] - $height - 5;
        $image = imagecreatefromjpeg($fileget);
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height); 
        $white = imagecolorallocate($image_p, 255, 255, 255);
        $font = FONT_PATH;
        $font_size = 15;
        $bbox = imagettfbbox($font_size, 0, $font, $watermarktext);
        $x = $bbox[0] + (imagesx($image) / 2) - ($bbox[4] / 2) - 25;
        $y = $bbox[1] + (imagesy($image) / 2) - ($bbox[5] / 2) - 5;
        imagettftext($image_p, $font_size, 0, $x, $y, $white, $font, $watermarktext);
        if ($saveto<>'') {
            imagejpeg ($image_p, $saveto, 100); 
        } else {
            header('Content-Type: image/jpeg');
            imagejpeg($image_p, null, 100);
        };
        imagedestroy($image); 
        imagedestroy($image_p); 
    }
?>

我指的是这个答案:answer-1

如何将位置设置为右下方方向?

1 个答案:

答案 0 :(得分:1)

不要将xy位置除以2。这就是它处于中间的原因。在以下几行:

$x = $bbox[0] + (imagesx($image) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($image) / 2) - ($bbox[5] / 2) - 5;

这应该有效,因为该位置将是右下角:

$x = $bbox[0] + (imagesx($image)) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($image)) - ($bbox[5] / 2) - 5;

编辑右下角:

 $x = $bbox[0] + (imagesx($image)) - ($bbox[4] / 2) - 130;
 $y = $bbox[1] + (imagesy($image)) - ($bbox[5] / 2) - 30;