Главная страница
    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.018 c
3-28613
River
2003-01-22 14:50
2003.02.10
Народ подскажите!


1-28916
xZeus
2003-01-30 12:13
2003.02.10
Использование C++Builder в Delphi


14-29060
Anton
2003-01-24 17:33
2003.02.10
Нужна помощь


9-28578
Delphi 5.01
2002-08-28 18:51
2003.02.10
Problema s zagruskoi bitmap-ov is


1-28745
D}|{0KEP
2003-02-01 05:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский