Witam!
Mam taki problem. Jak zrobic obwódkę (obramowanie, oblanie) w kolorze np. czarnym liter tekstu na canvasie (w kolorze np. białym).
Chodzi o zrobienie napisów, które będą wyświetlane przy odtwarzaniu filmu, w playerze, ktory sobie pisze.
Mam problem z przeliczaniem wielkości czcionki i odleglością przesuniecia napisow - cieniów. Poniżej zamieszczam co udało mi się napisac - dla czcionki o rozmiarze 36 jest wszystko OK, tak jak chce, tj. napis w kolorze zielonym i czarna obwodka liter.
procedure WyswietlTekst(Kanwas : TCanvas; Tekst:string; KolorTekstu, Kolorobwodki : TColor; RozmiarCzcionki : integer);
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
begin
WyswietlTekst(Form1.Canvas,'To jest przykładowy tekst',clblack,clgreen,36);
end;
procedure TForm1.WyswietlTekst(Kanwas: TCanvas; Tekst: string; KolorTekstu, Kolorobwodki: TColor; RozmiarCzcionki: integer);
begin
CzyscTlo(form1.Canvas,clwhite,clred); // czysci tlo...
with kanwas do
begin
// TŁA
Brush.Style := bsClear; // przesuniecie w lewo w gore
Font.Style:=[fsbold];
Font.Color :=KolorTekstu ;
Font.Size := RozmiarCzcionki;
TextOut(50-2, 100-2, Tekst);
Font.Color :=KolorTekstu ; // przesuniecie w lewo w dol
Font.Size := RozmiarCzcionki;
TextOut(50-2, 100+2, Tekst);
Font.Color :=KolorTekstu ; // wyrownanie( w lewo)
Font.Size := RozmiarCzcionki;
TextOut(50-2, 100, Tekst);
//i w drugo strone
Font.Color :=KolorTekstu ; // przesuniecie w prawo w gore
Font.Size := RozmiarCzcionki;
TextOut(50+2, 100-2, Tekst);
Font.Color :=KolorTekstu ; // przesuniecie w prawo w dol
Font.Size := RozmiarCzcionki;
TextOut(50+2, 100+2, Tekst);
Font.Color :=KolorTekstu ; // wyrownanie( w prawo)
Font.Size := RozmiarCzcionki;
TextOut(50+2, 100, Tekst);
//Tekst ORYGINALNY
// Brush.Style := bsClear;
Font.Color := KolorObwodki;
Font.Size := RozmiarCzcionki;
TextOut(50, 100, Tekst);
end;
end;
Pytanie, jak to zrobic by to działało niezaleznie od wybranej czcionki i jej rozmiaru?
Prosze o pomoc. Dzieki
Pozdr,pepe