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

Вниз

Пару вопросов по TBitmap   Найти похожие ветки 

 
Mouse   (2004-01-15 10:49) [0]

Здраствуйте!
Есть пару вопросов:
1)
Как изменить цвет фона в TBitmap?
(линиями зарисовывать - не серьезно)

2)
Кидаю текст на картинку:
var bm : TBitmap;
bm.Canvas.TextOut(200,200,"тест");


Как кинуть текст на картинку, но с другим фоном и с другим цветом текста?
а также как написать текст в вертикальном положении или под углом?

Заранее спасибо!


 
Семен Сорокин   (2004-01-15 10:51) [1]

1. FillRect
Как кинуть текст на картинку, но с другим фоном и с другим цветом текста?
Canvas.Brush.Color и Canvas.Font.Color
а также как написать текст в вертикальном положении или под углом?
CreateFontIndirect

+
F1


 
goga   (2004-01-15 10:55) [2]

1)Если черным или белым - PatBlt, а так
bm.Canvas.Brush.Color:=clRed;
bm.Canvas.FillRect(bm.Canvas.ClipRect);
2)Чтобы написать текст под углом надо воспользоваться WinAPI
Прости, что не знаю как это будет на Delphi, я на Builder"е пишу
LOGFONT logfont; //text axis
logfont.lfHeight=14;
logfont.lfWidth=0;
logfont.lfWeight=FW_BOLD;
logfont.lfItalic=0;
logfont.lfUnderline=0;
logfont.lfStrikeOut=0;
logfont.lfCharSet=0;
logfont.lfOutPrecision=OUT_TT_ONLY_PRECIS;
logfont.lfClipPrecision=CLIP_DEFAULT_PRECIS;
logfont.lfQuality=PROOF_QUALITY;
logfont.lfPitchAndFamily=DEFAULT_PITCH|FF_DONTCARE;
logfont.lfEscapement=0;
logfont.lfOrientation=0;//Вот это угол
HFONT hOldFont,hNewFont;
hNewFont=CreateFontIndirect(&logfont);
hOldFont=SelectObject(Form1->Image1->Canvas->Handle,hNewFont);
TextOut(Form1->Image1->Canvas->Handle,Form1->Image1->Width/2,Form1->Image1->Height-16,"Points in file",14);
SelectObject(Form1->Image1->Canvas->Handle,hOldFont);
DeleteObject(hNewFont);


 
goga   (2004-01-15 10:58) [3]

И предчувствуя след. вопрос : чтобы изображение не моргало при перерисовке добавь в процедуре OnCreate у формы или панели(смотря где у тебя битмап) установку DoubleBuffered:=true;


 
Mouse   (2004-01-15 10:58) [4]


> Семен Сорокин


1) типа так:
bm.Canvas.Brush.Color:=clblue;
bm.Canvas.FillRect(Rect(0,0,bm.Width,bm.Height));


 
Mouse   (2004-01-15 11:00) [5]


> goga (15.01.04 10:58) [3]
> И предчувствуя след. вопрос : чтобы изображение не моргало
> при перерисовке


Чтобы оно не моргало - я делал так:
Form1.Image1.canvas.Draw(0, 0, bm);


 
Ega23   (2004-01-15 11:03) [6]


> 1) типа так:
> bm.Canvas.Brush.Color:=clblue;
> bm.Canvas.FillRect(Rect(0,0,bm.Width,bm.Height));


Лучше даже так:

var
bc:TColor;
begin
bc:=bm.Canvas.Brush.Color;
bm.Canvas.Brush.Color:=clBlue;
bm.Canvas.FillRect(Rect(0,0,bm.Width,bm.Height));
bm.Canvas.Brush.Color:=bc;
end;


 
Mouse   (2004-01-15 11:10) [7]


> Ega23 © (15.01.04 11:03) [6]
> Лучше даже так:
>
> var
> bc:TColor;
> begin
> bc:=bm.Canvas.Brush.Color;
> bm.Canvas.Brush.Color:=clBlue;
> bm.Canvas.FillRect(Rect(0,0,bm.Width,bm.Height));
> bm.Canvas.Brush.Color:=bc;
> end;


Дело в том, что цвет фона у меня постоянный! твой метод подходит когда мне надо будет рисовать текст на другом фоне, но не когда я меняю фон TBitmap!


 
Ega23   (2004-01-15 11:14) [8]


> Дело в том, что цвет фона у меня постоянный! твой метод
> подходит когда мне надо будет рисовать текст на другом фоне,
> но не когда я меняю фон TBitmap!

Цвет текста ты не можешь поменять через Brush.Color. Это тебе Canvas.Font.Color нужно.



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

Форум: "Основная";
Текущий архив: 2004.01.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
14-83267
Карелин Артем
2004-01-06 13:02
2004.01.26
Программа AIN.EXE Где взять?


9-83085
loto
2003-05-29 18:33
2004.01.26
(OpenGL) модули математических действий с матрицами


14-83280
DCoder
2003-12-26 16:53
2004.01.26
Кто на чем работает? (конфигурация ПК)


7-83288
zdn
2003-11-10 10:55
2004.01.26
Сервисы в Delphi


1-83143
Пубертанец
2004-01-15 12:20
2004.01.26
bpl вместо dll





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