Главная страница
    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.049 c
2-1179489781
Oleg_teacher
2007-05-18 16:03
2007.06.10
Дата


2-1179743066
dmdel
2007-05-21 14:24
2007.06.10
Richedit


2-1179643152
А.Брей
2007-05-20 10:39
2007.06.10
Переменная


2-1179659324
ari_9
2007-05-20 15:08
2007.06.10
как из контекста устройства (HDC) получить битмап ?


2-1179472932
wWwWw
2007-05-18 11:22
2007.06.10
CloseFile





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский