Форум: "Основная";
Текущий архив: 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