Как создать этот эффект изображения, любая библиотека, которая может помочь с этим

#php #image-processing #imagemagick #image-manipulation #gd

#php #обработка изображений #imagemagick #gd

Вопрос:

Вы знаете, можно ли создать подобный эффект тиснения с помощью программного пакета. Кто-нибудь может что-нибудь предложить

введите описание изображения здесь

Ответ №1:

Обычно простые эффекты, подобные этому, реализуются с использованием ядра свертки, где изображение преобразуется из исходного кода в новую копию. Каждый новый пиксель вычисляется как линейная комбинация (т. Е. взвешенная сумма) исходного пикселя и подмножества его соседей в исходном изображении.

В качестве примера вы могли бы (абстрактно) определить ядро, такое как:

  0  0  0
 0  9 -3
 0 -3 -3
  

Здесь центр матрицы представляет взвешивание, применяемое к соответствующему исходному пикселю для каждого нового значения пикселя, подлежащего вычислению. Окружающие значения представляют взвешивание, которое должно быть применено к соответствующим соседним пикселям перед суммированием для вычисления общего значения нового пикселя.

На практике это может быть применено для создания нового рельефного изображения со следующим псевдокодом:

 for y in source.height:
    for x in source.width:
        newImage[x,y] = source[x,y]*9
                        source[x 1,y]*-3
                        source[x,y 1]*-3
                        source[x 1,y 1]*-3
  

Не учтены очевидные детали реализации, такие как способ обработки края изображения (один из вариантов — предположить, что изображение зеркально отражено по краям), а также фактическое применение произвольной матрицы коэффициентов вместо жесткого кодирования взвешенной суммы, как указано выше. Надеюсь, это, по крайней мере, показывает, насколько проста операция на самом деле по своей сути.

Комментарии:

1. Это приведет к тиснению всего изображения, а не только текста.

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

Ответ №2:

С помощью GD:

  1. создайте новое прозрачное изображение размером с исходное — imagecreatetruecolor()
  2. нарисуйте текст на этом изображении — imagettftext() / imagettfbbox() — подсказка: IMG_COLOR_TRANSPARENT
  3. примените IMG_FILTER_EMBOSS фильтр — imagefilter()
  4. скопируйте рельефный текст поверх исходного изображения — imagecopymerge()

Ответ №3:

Это может помочь:http://www.imagemagick.org/Usage/fonts /

Ответ №4:

Похоже, теги разобрались с этим за вас… Похоже, это то, что подходит для ImageMagick.

Посмотрите здесь несколько хороших примеров водяных знаков PHP ImageMagick.

Комментарии:

1. Тьфу, да. Извините. Отредактировано, чтобы удалить это.