我使用以下代码设置水印,但它将水印设置为中心,我想将其设置在右下角位置。
<?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
如何将位置设置为右下方方向?
答案 0 :(得分:1)
不要将x
和y
位置除以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;