Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Подложить под текст белый контур


Автор: dm9 6.6.2008, 15:19
Добрый день.

Встала задача подложить под чёрный текст, который я наношу на изображение, лёгкий белый контур. Достаточно классический приём для того чтобы текст был виден одинаково хорошо на любом фоне. Стрелочка мышки, например, точно для того же обведена чёрным контуром, тот же приём используется на Google-картах. Мне нужен такой же эффект.

В Фотошопе я это делаю выделением текста (в смысле, слоя с текстом), затем расширяю выделение на 1px (Selection/Expand) и заливаю нижний слой белым.

В какую сторону копать, чтобы достичь такого же эффекта из PHP? Умеет ли что-то подобное imagemagick?

Updated: http://forum.vingrad.ru/act-Attach/type/post/id-1540066.html.

Автор: krundetz 6.6.2008, 15:26
Рисуйте сначала белый шрифт который будет чуть больше основного, а потом поверх него рисуйте черный текст чуть меньше чем вам необходимо. Такой примерно алгоритм и скрывается под теме действиями которые вы проделываете в фотошопе.

Автор: dm9 6.6.2008, 15:30
Абсолютно нет. "Чуть-чуть больший" шрифт будет больше для каждого символа. В строке он сместится на десятки пикселей. Я говорил про совершенно другой алгоритм в Фотошопе (см. выше).

Автор: krundetz 6.6.2008, 15:51
Видимо я вас не совсем понял. Возможно если вы выложите картинку что вы хотите добиться будет более понятно.

Автор: dm9 6.6.2008, 17:57
Вот

Автор: krundetz 6.6.2008, 21:58
Глянул ваш пример. Я вас первый раз правильно понял. Я просто не понял ваш ответ подумал что у вас строго задана ширина и за неё выходить нельзя. Сдесь просто скорее всего каждая буква текста позиционируется отдельно. Возможно как вариант избавиться от смешения одного текста относительно другого можно правильно подобрав межбуквеные интервалы.

Сейчас подумал и пришел к выводу что второй вариант будет наиболее верным просто нужно будет правильно подобрать пропорциональную зависимость размера шрифтов и межбуквеных интервалов.

Автор: dm9 6.6.2008, 23:17
Честно попробовал (см. аттач). Больший шрифт вообще не работает. Эксперименты с Болдом тоже не перспективны.

Автор: krundetz 6.6.2008, 23:49
Возможно поможет вот это http://www.phpbuilder.com/columns/cash20030526.php3?print_mode=1
Насколько я понял там используется эффект смешения существующего шрифта в 4 направлениях на 1 пиксель.

Автор: dm9 7.6.2008, 00:48
Правильная мысль! Если антиалиаснутый текст, получается нормально.
Теперь только надо научиться писать с антиалиасингом через imagemagick.
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)