Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите совместить скрипт!!! Watermark / 5 сообщений из 5, страница 1 из 1
17.10.2012, 10:51:05
    #38001872
SeeJay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите совместить скрипт!!! Watermark
Здравствуйте уважаемые форумчане помогите совместить скрипт.

Пытаюсь совместить готовый скрипт для отрисовки водяного знака и функцию которая отрисовывает текст по диагонали.
Вот собственно эти две функции...

****Работающий скрипт****
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
<? 

waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5"); 

function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) { 
   $original = urldecode($original);
   $info_o = @getImageSize($original); 
   if (!$info_o) 
         return false; 
   $info_w = @getImageSize($watermark); 
   if (!$info_w) 
         return false; 

   list ($vertical, $horizontal) = split(',', $placement,2); 
   list($vertical, $sy) = split('=', trim($vertical),2); 
   list($horizontal, $sx) = split('=', trim($horizontal),2); 

   switch (trim($vertical)) { 
      case 'bottom': 
         $y = $info_o[1] - $info_w[1] - (int)$sy; 
         break; 
      case 'middle': 
         $y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy; 
         break; 
      default: 
         $y = (int)$sy; 
         break; 
      } 

   switch (trim($horizontal)) { 
      case 'right': 
         $x = $info_o[0] - $info_w[0] - (int)$sx; 
         break; 
      case 'center': 
         $x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx; 
         break; 
      default: 
         $x = (int)$sx; 
         break; 
      } 

   header("Content-Type: ".$info_o['mime']); 

   $original = @imageCreateFromString(file_get_contents($original)); 
   $watermark = @imageCreateFromString(file_get_contents($watermark)); 
   $out = imageCreateTrueColor($info_o[0],$info_o[1]); 

   imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]); 

//&#210;&#243;&#242; &#231;&#224;&#228;&#224;&#229;&#236; &#240;&#224;&#231;&#236;&#229;&#240; &#232;&#231;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#255; &#226; &#234;&#238;&#242;&#238;&#240;&#251;&#229; &#236;&#238;&#230;&#237;&#238; &#228;&#238;&#225;&#224;&#226;&#235;&#255;&#242;&#252; Watermark
// $info_o[0] > 250 - &#248;&#232;&#240;&#232;&#237;&#224; &#232;&#231;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#255; &#228;&#238;&#235;&#230;&#237;&#224; &#225;&#251;&#242;&#252; &#225;&#238;&#235;&#252;&#248;&#229; 250 px
// $info_o[1] > 250 - &#226;&#251;&#241;&#238;&#242;&#224; &#232;&#231;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#255; &#228;&#238;&#235;&#230;&#237;&#224; &#225;&#251;&#242;&#252; &#225;&#238;&#235;&#252;&#248;&#229; 250 px

   if( ($info_o[0] > 250) && ($info_o[1] > 250) )
   {
   imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
   }

   switch ($info_o[2]) { 
      case 1: 
         imageGIF($out); 
         break; 
      case 2: 
         imageJPEG($out); 
         break; 
      case 3: 
         imagePNG($out); 
         break; 
         } 

   imageDestroy($out); 
   imageDestroy($original); 
   imageDestroy($watermark); 

   return true; 
   } 

?>


****Функция которую хочу вставить, вместо простого водяного знака. Хочу что бы по диагонали выводился текст.****
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  function create_watermark( $main_img_obj, $text, $font, $r = 128, $g = 128, $b = 128, $alpha_level = 100 )
  {
   $width = imagesx($main_img_obj);
   $height = imagesy($main_img_obj);
   $angle =  -rad2deg(atan2((-$height),($width)));

   $text = " ".$text." ";

   $c = imagecolorallocatealpha($main_img_obj, $r, $g, $b, $alpha_level);
   $size = (($width+$height)/2)*2/strlen($text);
   $box  = imagettfbbox ( $size, $angle, $font, $text );
   $x = $width/2 - abs($box[4] - $box[0])/2;
   $y = $height/2 + abs($box[5] - $box[1])/2;

   imagettftext($main_img_obj,$size ,$angle, $x, $y, $c, $font, $text);
   return $main_img_obj;
  }



Как совместить верхний с нижним скриптом?????
...
Рейтинг: 0 / 0
17.10.2012, 10:57:19
    #38001891
SeeJay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите совместить скрипт!!! Watermark
В первом скрипте за основу берется предварительно заготовленная картинка watermark.png а я хочу что бы можно было вместо неё выводить текст по диагонали.
...
Рейтинг: 0 / 0
17.10.2012, 10:58:55
    #38001897
SeeJay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите совместить скрипт!!! Watermark
Пробую сделать что-то такое но мой вариант не работает!!!
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<? 
$original = urldecode($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
$watermark = new watermark1();
$img = imagecreatefromjpeg($original);
$info_o = @getImageSize($original);
$im=$watermark->create_watermark($img,”www.kartina31.ru”,”ARIAL.TTF”,0,0,255,120);
header("Content-Type: ".$info_o['mime']);
imagejpeg($im,”result.jpg”);

  function create_watermark( $main_img_obj, $text, $font, $r = 128, $g = 128, $b = 128, $alpha_level = 100 )
  {
   $width = imagesx($main_img_obj);
   $height = imagesy($main_img_obj);
   $angle =  -rad2deg(atan2((-$height),($width)));

   $text = " ".$text." ";

   $c = imagecolorallocatealpha($main_img_obj, $r, $g, $b, $alpha_level);
   $size = (($width+$height)/2)*2/strlen($text);
   $box  = imagettfbbox ( $size, $angle, $font, $text );
   $x = $width/2 - abs($box[4] - $box[0])/2;
   $y = $height/2 + abs($box[5] - $box[1])/2;

   imagettftext($main_img_obj,$size ,$angle, $x, $y, $c, $font, $text);
   return $main_img_obj;
  }

?>
...
Рейтинг: 0 / 0
17.10.2012, 11:13:00
    #38001921
SeeJay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите совместить скрипт!!! Watermark
Вот нашел одну ошибку. Не был класса я при перекопировании его потерял. Плюс ещё добавил вывод ошибок. Но скрипт по прежнему не работает. В чем может быть дело?????
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<? 
ini_set('display_errors',1);
error_reporting(E_ALL);

$original = urldecode($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']);
$watermark = new watermark1();
$img = imagecreatefromjpeg($original);
$info_o = @getImageSize($original);
$im=$watermark->create_watermark($img,”www.kartina31.ru”,”ARIAL.TTF”,0,0,255,120);
header("Content-Type: ".$info_o['mime']);
imagejpeg($im,”result.jpg”);
class watermark1()
{
  function create_watermark( $main_img_obj, $text, $font, $r = 128, $g = 128, $b = 128, $alpha_level = 100 )
  {
   $width = imagesx($main_img_obj);
   $height = imagesy($main_img_obj);
   $angle =  -rad2deg(atan2((-$height),($width)));

   $text = " ".$text." ";

   $c = imagecolorallocatealpha($main_img_obj, $r, $g, $b, $alpha_level);
   $size = (($width+$height)/2)*2/strlen($text);
   $box  = imagettfbbox ( $size, $angle, $font, $text );
   $x = $width/2 - abs($box[4] - $box[0])/2;
   $y = $height/2 + abs($box[5] - $box[1])/2;

   imagettftext($main_img_obj,$size ,$angle, $x, $y, $c, $font, $text);
   return $main_img_obj;
  }
}
?>
...
Рейтинг: 0 / 0
17.10.2012, 11:46:09
    #38002003
SeeJay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите совместить скрипт!!! Watermark
Решил сам... Пользуйтесь!
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
<?
ini_set('display_errors',1);
error_reporting(E_ALL);

class watermark1
{
  function create_watermark( $main_img_obj, $text, $font, $r = 128, $g = 128, $b = 128, $alpha_level = 100 )
  {
   $width = imagesx($main_img_obj);
   $height = imagesy($main_img_obj);
   $angle =  -rad2deg(atan2((-$height),($width)));

   $text = " ".$text." ";

   $c = imagecolorallocatealpha($main_img_obj, $r, $g, $b, $alpha_level);
   $size = (($width+$height)/2)*2/strlen($text);
   $box  = imagettfbbox ( $size, $angle, $font, $text );
   $x = $width/2 - abs($box[4] - $box[0])/2;
   $y = $height/2 + abs($box[5] - $box[1])/2;

   imagettftext($main_img_obj,$size ,$angle, $x, $y, $c, $font, $text);
   return $main_img_obj;
  }
}

$watermark = new watermark1();
$img = imagecreatefromjpeg("sample1.jpg");
$info_o = @getImageSize("sample1.jpg");

$im=$watermark->create_watermark($img,"www.kartina31.ru","ARIAL.TTF",0,0,255,80);

$out = imageCreateTrueColor($info_o[0],$info_o[1]);
imageCopy($out, $im, 0, 0, 0, 0, $info_o[0], $info_o[1]);

header("Content-Type: image/jpeg");
imagejpeg($out);

imageDestroy($im);
imageDestroy($out);
?>
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите совместить скрипт!!! Watermark / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]