Главная страница
    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.45 MB
Время: 0.043 c
1-1171461249
Пётр_К
2007-02-14 16:54
2007.06.10
TShape drag


2-1179894522
allucard
2007-05-23 08:28
2007.06.10
Обяъсните неграмотному Packed Record


2-1179387067
FRAGMIR
2007-05-17 11:31
2007.06.10
ADOconnection


15-1178896830
Kerk
2007-05-11 19:20
2007.06.10
Керк в Москве


15-1179299898
zdm
2007-05-16 11:18
2007.06.10
Нужен Хэлп





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский