Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Водяной знак по центру

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
wredyatina
Отправлено: 31 Июля, 2012 - 11:24:22
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




Здравствуйте, добавляю водяной знак на изображение, как мне разместить его по центру, у всех изображений разные ширина и высота.
Вот:
PHP:
скопировать код в буфер обмена
  1. // определяем ширину и высоту исходного изображения
  2. $image_width = imagesx($image);
  3. $image_height = imagesy($image);
  4.  
  5. //Как правильно изменить код чтобы размещалось по центру
  6. $dest_x = $size[0] - $watermark_width - 50;
  7. $dest_y = $size[1] - $watermark_height - 50;
  8. //сейчас размещается с отступом 50 px в правом углу
  9.  

PHP:
скопировать код в буфер обмена
  1. header('content-type: image/jpeg');
  2.  
  3. $image = $_GET['image'];
  4.  
  5. $watermark = imagecreatefrompng('watermark.png');  
  6.  
  7. $watermark_width = imagesx($watermark);
  8. $watermark_height = imagesy($watermark);  
  9.  
  10. $image_path = $image;
  11. $image = imagecreatefromjpeg($image_path);
  12. //если что-то пойдёт не так
  13. if ($image === false) {
  14.     return false;
  15. }
  16. $size = getimagesize($image_path);
  17.  
  18. $dest_x = $size[0] - $watermark_width - 50;
  19. $dest_y = $size[1] - $watermark_height - 50;
  20.  
  21. imagealphablending($image, true);
  22. imagealphablending($watermark, true);
  23. imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
  24. imagejpeg($image);
  25. imagedestroy($image);
  26. imagedestroy($watermark);  
  27.  

Заранее спасибо за ответы.)


-----
Я только учусь...
 
 Top
armancho7777777 Супермодератор
Отправлено: 31 Июля, 2012 - 11:34:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




По координате Х = ((Ширина картинки) / 2) - ((Ширина водяного знака) / 2)
По координате У = ((Высота картинки) / 2) - ((Высота водяного знака) / 2)

(Отредактировано автором: 31 Июля, 2012 - 11:35:23)

 
 Top
wredyatina
Отправлено: 31 Июля, 2012 - 11:55:22
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




armancho7777777 пишет:
По координате Х = ((Ширина картинки) / 2) - ((Ширина водяного знака) / 2)
По координате У = ((Высота картинки) / 2) - ((Высота водяного знака) / 2)


СПС Огромное!!!


-----
Я только учусь...
 
 Top
armancho7777777 Супермодератор
Отправлено: 31 Июля, 2012 - 11:56:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Да не за что.
 
 Top
DelphinPRO
Отправлено: 31 Июля, 2012 - 12:01:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




armancho7777777 пишет:
По координате Х = ((Ширина картинки) / 2) - ((Ширина водяного знака) / 2)

много скобок Улыбка

По координате Х = (Ширина картинки - Ширина водяного знака) / 2


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
wredyatina
Отправлено: 31 Июля, 2012 - 12:31:26
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Авг. 2010  
Откуда: Челны


Помог: 0 раз(а)




У меня еще вопрос:
Мне необходимо вывести изображение с водяным знаком в галереи) Как мне сделать?


PHP:
скопировать код в буфер обмена
  1. <a href="<?=$image?>" class="gallery" rel="group">
  2. <img src="preview.php"></a>

PHP:
скопировать код в буфер обмена
  1.  
  2.  function image_watermark () {
  3. if (isset($_GET['image'])) {
  4.  
  5. $image = $_GET['image'];
  6. $size_format = getimagesize($image);
  7. $format = strtolower(substr($size_formay['mime'], strpos($size_format['mime'], '/')+1));
  8.  
  9. header('content-type: image/'.$format.'');
  10.  
  11. // получаем имя изображения через GET
  12. $image = $_GET['image'];
  13.  
  14. // создаём водяной знак
  15. $watermark = imagecreatefrompng('watermark.png');    
  16.  
  17. // получаем значения высоты и ширины водяного знака
  18. $watermark_width = imagesx($watermark);
  19. $watermark_height = imagesy($watermark);  
  20.  
  21. // создаём jpg из оригинального изображения
  22. $image_path = $image;
  23. $image = imagecreatefromjpeg($image_path);
  24. //если что-то пойдёт не так
  25. if ($image === false) {
  26.     return false;
  27. }
  28. $size = getimagesize($image_path);
  29. // помещаем водяной знак на изображение
  30. $dest_x = (($size[0])/2) - (($watermark_width)/2);
  31. $dest_y = (($size[1])/2) - (($watermark_height)/2);
  32.  
  33. imagealphablending($image, true);
  34. imagealphablending($watermark, true);
  35. // создаём новое изображение
  36. imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
  37.  
  38. $imageformat = 'image'.$format;
  39. $imageformat($image);
  40.  
  41. // освобождаем память
  42. imagedestroy($image);
  43. imagedestroy($watermark);  
  44. }
  45. ?>
  46.  

(Добавление)
Подскажите как мне передать изображение в функцию? Путь и имя?
Изображений много сортировка и запросы по $row['id'] или $row['name']


-----
Я только учусь...
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Августа, 2012 - 04:37:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DelphinPRO пишет:
много скобок

Это чтобы ТСу было понятней )
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB