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
Форумы портала PHP.SU :: Версия для печати :: Текстовый Watermark в качестве фона
Форумы портала PHP.SU » » Графика в PHP » Текстовый Watermark в качестве фона

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

1. oleg_antonov - 02 Марта, 2015 - 13:16:08 - перейти к сообщению
Всем привет.

Нужно накладывать текстовый watermark на черно-белые изображения.
Сейчас получается наложить текст "сверху" на изображение. Но хочется чтобы изображение "накладывалось" на текст.
Пример: https://yadi[dot]sk/i/oP8ZSRv6eyGyh
Подскажите, в какую сторону копать.
2. Ts.Saltan - 02 Марта, 2015 - 17:37:03 - перейти к сообщению
Тут простой текст написанный полупрозрачным цветом
https://php.net/manual/ru/functi...agesavealpha.php
https://php.net/manual/ru/functi...llocatealpha.php
3. oleg_antonov - 02 Марта, 2015 - 19:54:17 - перейти к сообщению
Ts.Saltan пишет:
Тут простой текст написанный полупрозрачным цветом
https://php.net/manual/ru/functi...agesavealpha.php
https://php.net/manual/ru/function.imagecolorallocatealpha.php


Как то я не очень пример сделал =)
Текст серого цвета, а линии черного. И при пересечении текст получается "сзади" линий. Тоесть при пересечении черных и серых пикселей, итоговый цвет пикселя должен оставаться черным
4. oleg_antonov - 24 Марта, 2015 - 12:19:17 - перейти к сообщению
Решил пойти таким путем.
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.
5. Panoptik - 24 Марта, 2015 - 12:27:33 - перейти к сообщению
попиксельная обработка изображения дико будет загружать ЦП и такая операция может положить скрипт или даже хост. подумайте над другими решениями
6. oleg_antonov - 24 Марта, 2015 - 12:38:09 - перейти к сообщению
Panoptik пишет:
попиксельная обработка изображения дико будет загружать ЦП и такая операция может положить скрипт или даже хост. подумайте над другими решениями

Другое решение, приходящее на ум, модуль на си, делающий тоже самое.
7. Panoptik - 24 Марта, 2015 - 13:01:54 - перейти к сообщению
я имел ввиду стандартный вариант наложения вотермарка - это слияние 2-х картинок или текста и картинки посредством библиотеки gd2 или imagick

посмотрите на эту функцию
imagecopyresampled
8. oleg_antonov - 24 Марта, 2015 - 14:04:22 - перейти к сообщению
Panoptik пишет:
я имел ввиду стандартный вариант наложения вотермарка - это слияние 2-х картинок или текста и картинки посредством библиотеки gd2 или imagick

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

Особенно обнадеживает фраза
Цитата:
но если области перекрываются, результат непредсказуем.
Радость

 

Powered by ExBB FM 1.0 RC1