Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

Бордюр шрифта (Outline)   Найти похожие ветки 

 
MikeIp   (2002-10-29 10:19) [0]

Привет всем!
Нужно вывести текст с окантовкой:
1.
BeginPath(Handle);
SetBkMode(Handle, TRANSPARENT);
TextOut(10,10, Edit1.Text);
EndPath(Handle);
StrokeAndFillPath(Handle);
Этот вариант, при малых размерах шрифта, делает текст обгрызанным.
2. Обрисовывать по точкам - медленно, но красиво. Может есть еще варианты. Подскажите ну очень нужно.
Всем заранее спасибо!


 
MBo   (2002-10-29 10:23) [1]

Нет вариантов. С регионами еще корявее. Антиалиасинг только при штатном выводе шрифта действует.

>Обрисовывать по точкам
что имеется в виду? Нечто вроде: если рядом черная точка, то закрасить данную синим?


 
MikeIp   (2002-10-29 10:26) [2]

Совершенно верно.
Может есть какой-то более быстрый доступ к точкам.


 
MBo   (2002-10-29 10:27) [3]

я же не знаю, какой ты сейчас используешь ;)


 
MikeIp   (2002-10-29 10:32) [4]


for x:=0 to Rect.Right do begin
for y:=0 to Rect.Bottom do begin
if Canva.Pixels[x,y]=fnColor then begin
if Canva.Pixels[x-1,y]<>fnColor then Canva.Pixels[x-1,y]:=olColor;
if Canva.Pixels[x-1,y-1]<>fnColor then Canva.Pixels[x-1,y-1]:=olColor;
if Canva.Pixels[x+1,y-1]<>fnColor then Canva.Pixels[x+1,y-1]:=olColor;
if Canva.Pixels[x,y+1]<>fnColor then Canva.Pixels[x,y+1]:=olColor;
if Canva.Pixels[x,y-1]<>fnColor then Canva.Pixels[x,y-1]:=olColor;
if Canva.Pixels[x+1,y+1]<>fnColor then Canva.Pixels[x+1,y+1]:=olColor;
if Canva.Pixels[x+1,y]<>fnColor then Canva.Pixels[x+1,y]:=olColor;
if Canva.Pixels[x-1,y+1]<>fnColor then Canva.Pixels[x-1,y+1]:=olColor;
end;
end
</coed>
где fnColor - текст, olColor - бордюр.
Может Direct мог помочь, но нет времени с ним разбиратся. :(


 
Victor_Cr   (2002-10-29 11:04) [5]

А не проще выводить сначала чуть больший шрифт с цветом окантовки, а на него выводить меньший с нужным цветом но с чуть большим интервалом.


 
MikeIp   (2002-10-29 11:39) [6]

А при изменении размера шрифта снова высчитывать интервал?


 
MBo   (2002-10-29 12:14) [7]

почти на порядок быстрее, чем через Pixels - использование ScanLine. Нвдо только учитывать цветовой формат (256 - 1байт/пиксел, 16М - 3 байта)



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

Форум: "Media";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
14-29098
новенький в Делфи
2003-01-25 02:40
2003.02.10
Как работает sleep()?


1-28796
Anton Tsvilikh
2003-02-01 21:35
2003.02.10
ПОЧЕМУ НЕ ХЧЕТ РИСОВАТЬ?????


3-28671
qwerty2
2003-01-24 11:33
2003.02.10
Символ скобки в предложении LIKE


1-28856
Noname2
2003-01-30 11:13
2003.02.10
Метка как объект в run-time


3-28656
CASU
2003-01-22 11:16
2003.02.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский