水印文字位置右下角
Watermark text position bottom right
我正在使用下面的代码来设置水印,但是它把水印设置到了中心,我想把它设置在右下角的位置。
<?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
如何将位置设置为右下方向?
不要将 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;
我正在使用下面的代码来设置水印,但是它把水印设置到了中心,我想把它设置在右下角的位置。
<?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
如何将位置设置为右下方向?
不要将 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;