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 :: Текстовый Watermark в качестве фона

 PHP.SU

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


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

> Без описания
oleg_antonov
Отправлено: 02 Марта, 2015 - 13:16:08
Post Id


Новичок


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


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




Всем привет.

Нужно накладывать текстовый watermark на черно-белые изображения.
Сейчас получается наложить текст "сверху" на изображение. Но хочется чтобы изображение "накладывалось" на текст.
Пример: https://yadi[dot]sk/i/oP8ZSRv6eyGyh
Подскажите, в какую сторону копать.
 
 Top
Ts.Saltan
Отправлено: 02 Марта, 2015 - 17:37:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


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




Тут простой текст написанный полупрозрачным цветом
https://php.net/manual/ru/functi...agesavealpha.php
https://php.net/manual/ru/functi...llocatealpha.php
 
 Top
oleg_antonov
Отправлено: 02 Марта, 2015 - 19:54:17
Post Id


Новичок


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


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




Ts.Saltan пишет:
Тут простой текст написанный полупрозрачным цветом
https://php.net/manual/ru/functi...agesavealpha.php
https://php.net/manual/ru/function.imagecolorallocatealpha.php


Как то я не очень пример сделал =)
Текст серого цвета, а линии черного. И при пересечении текст получается "сзади" линий. Тоесть при пересечении черных и серых пикселей, итоговый цвет пикселя должен оставаться черным
 
 Top
oleg_antonov
Отправлено: 24 Марта, 2015 - 12:19:17
Post Id


Новичок


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


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




Решил пойти таким путем.
1. Взять картинку белого фона с текстом.
2. Пройти по каждому пикселю и посмотреть его цвет
3. Если не белый, посмотреть цвет пикселя на фотографии
4. Если он там цветной, то ничего не делать, если белый, то изменить на цвет пикселя текстовой картинки.

Все работает хорошо. Но нужно сделать, чтобы наклон текста рандомно менялся.
PHP:
скопировать код в буфер обмена
  1.  
  2. $im = imagecreate(250, 60);
  3.  
  4. $white = imagecolorallocate ($im, 255, 255, 255);
  5. $black = imagecolorallocate ($im, 195, 195, 195);
  6. imagettftext ($im, 20, 0, 10, 20, $black, "arial.ttf", "Testing");
  7.  
  8. $imgW = 250;
  9. $imgH = 60;
  10. for($y=0;$y<$imgH;$y++)
  11.     {
  12.         for($x=0;$x<$imgW;$x++)
  13.         {
  14.                                 $ovrARGB = imagecolorat($im, $x, $y);
  15.                                 $ovrA = ($ovrARGB >> 24) << 1;
  16.                                 $ovrR = $ovrARGB >> 16 & 0xFF;
  17.                                 $ovrG = $ovrARGB >> 8 & 0xFF;
  18.                                 $ovrB = $ovrARGB & 0xFF;
  19.                                 echo $ovrA.' '.$ovrR.' '.$ovrG.' '.$ovrB.'<br><br>';   
  20.                                
  21.                        
  22.                 }
  23.         }
  24.  

Но при чтении цвета пикселя, в этом случае получается какая-то фигня.
А если читать из готовой картинки, то все хорошо.

Подскажите в чем ошибка. А то это моя первая встреча с GD.
 
 Top
Panoptik
Отправлено: 24 Марта, 2015 - 12:27:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




попиксельная обработка изображения дико будет загружать ЦП и такая операция может положить скрипт или даже хост. подумайте над другими решениями


-----
Just do it
 
 Top
oleg_antonov
Отправлено: 24 Марта, 2015 - 12:38:09
Post Id


Новичок


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


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




Panoptik пишет:
попиксельная обработка изображения дико будет загружать ЦП и такая операция может положить скрипт или даже хост. подумайте над другими решениями

Другое решение, приходящее на ум, модуль на си, делающий тоже самое.
 
 Top
Panoptik
Отправлено: 24 Марта, 2015 - 13:01:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




я имел ввиду стандартный вариант наложения вотермарка - это слияние 2-х картинок или текста и картинки посредством библиотеки gd2 или imagick

посмотрите на эту функцию
imagecopyresampled


-----
Just do it
 
 Top
oleg_antonov
Отправлено: 24 Марта, 2015 - 14:04:22
Post Id


Новичок


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


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




Panoptik пишет:
я имел ввиду стандартный вариант наложения вотермарка - это слияние 2-х картинок или текста и картинки посредством библиотеки gd2 или imagick

посмотрите на эту функцию
imagecopyresampled

Особенно обнадеживает фраза
Цитата:
но если области перекрываются, результат непредсказуем.
Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB