Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Окантовка текста   Найти похожие ветки 

 
Познающий   (2007-05-21 23:03) [0]

Подскажите пожалуйста как быстро и красиво отрисовать текст с окантовкой?

Думал сканлине и анализировать но тут мысль появилась перед выводом текста выводить 4 раза цветом окантовки этот же текст со смещением на пиксел\два в разные стороны.

Пока ещё код не писал, тока прикидываю,
может у кого есть опыт, поделитесь плиз...


 
{RASkov} ©   (2007-05-21 23:23) [1]

> выводом текста выводить 4 раза цветом окантовки

Тогда уж 8 раз...


 
Познающий   (2007-05-21 23:33) [2]

всмысле кроме лево, верх, право, низ ещё и
лево-верх, верх-право, право-низ, низ-лево
так?

хм...
что-то мне подсказывает что и при 8 выводах будут рваные края

хотя мне скорость нужна вывода, не работал никогда с графикой,
интересно через scanline с анализом границ быстрее будет или нет.

спасибо насчёт 8, не подумал ;)


 
Amoeba ©   (2007-05-22 12:02) [3]


> отрисовать текст с окантовкой?

Поясни, что именно следует понимать под окантовкой? А то телепатор перегревается.


 
Однокамушкин   (2007-05-22 12:24) [4]

Вообще такие вещи делаются по-другому...
Сначала создаётся путь на основе текста: BeginPath/TextOut/EndPath
Потом он превращается в регион: PathToRegion
Ну а потом этот регион заполняется и окаймляется: StrokeAndFillRegion. Для окантовки можно выбрать перо с неединичной шириной...

Правда, красиво это смотрится только при больших шрифтах...


 
Джо ©   (2007-05-22 13:42) [5]

> [4] Однокамушкин   (22.05.07 12:24)

> Потом он превращается в регион: PathToRegion
> Ну а потом этот регион заполняется и окаймляется: StrokeAndFillRegion.

Вовсе не обязательно переводить путь в регион. Есть StrokeAndFillPath.


 
Познающий   (2007-05-22 17:13) [6]

спасибо ребята, примерно то что нужно:

 with Form1.Canvas do
 begin
   Font.Name := "Arial";
   Font.Size := 64;
   Font.Style := Font.Style + [fsBold];
   Pen.Width := 3;
   Brush.Style := bsClear;
   BeginPath(Handle);
   TextOut(50, 50, "OutLined");
   EndPath(Handle);
   Brush.Style := bsSolid;
   Brush.Color := clWhite;
   StrokeAndFillPath(Handle)
 end;



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
2-1179401409
Heart_Beat
2007-05-17 15:30
2007.06.10
Лови пользователя


11-1161854783
Thaddy
2006-10-26 13:26
2007.06.10
kolnmck down?


15-1178977743
parus
2007-05-12 17:49
2007.06.10
Заценните сайт


6-1164419181
провидец
2006-11-25 04:46
2007.06.10
Веббровзер


5-1155654550
DevilDevil
2006-08-15 19:09
2007.06.10
ДизайнТайм VS Рантайм