Главная страница
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.022 c
15-1179160502
Bad_B
2007-05-14 20:35
2007.06.10
Как это работать программистом?


2-1179416636
Kostafey
2007-05-17 19:43
2007.06.10
Запрет на редактирование/удаление записи по значению


2-1179498674
Saposo
2007-05-18 18:31
2007.06.10
Проблемы с отображением шрифтов


2-1179794600
Riply
2007-05-22 04:43
2007.06.10
Объявление variant Record.


15-1178619068
X9
2007-05-08 14:11
2007.06.10
Минэкономразвития России — за Linux и Open Source для школ