Размещение изображения водяного знака - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть этот код для нанесения водяных знаков на изображение

if($type==".jpg" or $type==".jpeg"){
  $im = imagecreatefromjpeg($uploaddir.$randnum);
}elseif($type==".gif"){
  $im = imagecreatefromgif($uploaddir.$randnum);   
}else{
  $im = imagecreatefrompng($uploaddir.$randnum); 
}

$imagesize = getimagesize($uploaddir.$randnum);

$x_offset = 7;
$y_offset = 8;

$textcolor  = imagecolorallocate($im, 0xCC, 0xCC, 0xCC);
$textcolor2 = imagecolorallocate($im, 0x00, 0x00, 0x00);
imagestring($im, 5, $x_offset, $y_offset, strtoupper($_POST['code']), $textcolor2);
if($type==".jpg" or $type==".jpeg"){
  imagejpeg($im,$uploaddir.$randnum,100);
}elseif($type==".gif"){
  imagegif($im,$uploaddir.$randnum,100);   
}else{
  imagepng($im,$uploaddir.$randnum,8);    
}

Приведенный выше код печатает водяной знак в левом верхнем углу ... Но я хочу, чтобы он был написан внизу справа.

любая помощь, ребята

привет

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Это линия, которая на самом деле размещает водяной знак:

imagestring($im, 5, $x_offset, $y_offset, strtoupper($_POST['code']), $textcolor2);

Горизонтальное положение водяного знака будет зависеть от того, что вы установили для $x_offset.Сейчас это 7, что означает 7 пикселей слева.

Чтобы получить его равным 7 пикселям от правого, установите его шириной всего изображения минус (7 + ширина водяного знака)

Найдите ширину водяного знакас imagettfbbox .

Принципы установки вертикального положения одинаковы.

0 голосов
/ 24 февраля 2012

Попробуйте использовать это там, где вы сейчас используете imagestring().

$font_size = 5;
$margin = 7;
$text_width = imagefontwidth($font_size)*strlen($_POST['code']);
$text_height = imagefontheight($font_size); //assuming it's one line
imagestring($im, $font_size, $imagesize[0] - $text_width - $margin, $imagesize[1] - $text_height - $margin, strtoupper($_POST['code']), $textcolor2);

Измените $margin и $font_size в соответствии с вашими потребностями.

0 голосов
/ 24 февраля 2012

Если вы хотите переместить его в нижнюю часть, просто измените смещение по оси Y на нижнюю часть изображения вместо «8» (что, вероятно, находится ближе к верху):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...