Thema: Delphi TImage über TPaintBox

Einzelnen Beitrag anzeigen

ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: TImage über TPaintBox

  Alt 16. Mär 2008, 13:37
Zitat von turboPASCAL:
Zitat:
keinen billigen sondern was kmplizierteres ...
JA, das kann man dan auch vom Quellcode erwarten.

Also eine von vielen Ideen:

1. Text auf Bitmap A malen
2. Farbverlauf (oder ein Bitmapbild) auf Bitmap B malen
3. Bitmap C mit Scanline aus Bitmap A und B erstellen wobei der Schriftzug aus Bitmap A "abgetasted"
wird
4. Text noch einmal als Outlineschrift drüber malen auf C

Oder mit Transparenten und/oder Masken arbeiten.

Viel Spass.
hm leider war das etwas zu hoch für mich ...
hier der code
Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var x:Integer;
begin
x:=475;
with PaintBox1 do
begin
DrawGradientH(Canvas, $00000000, $00FFFFFF, Rect(0, 0, Width, Height));
Canvas.Pen.Color := clBlack;
Canvas.MoveTo(0,31);
Canvas.LineTo(481,31);
Canvas.MoveTo(0,31);
Canvas.LineTo(0,0);
Canvas.MoveTo(x,31);
Canvas.LineTo(x,0);
Image2.BringToFront;
PaintBox1.SendToBack;
end;
end;
das DrawDradientH hab ich hier ausm Forum:
Delphi-Quellcode:
procedure DrawGradientH(Canvas: TCanvas; Color1, Color2: TColor; Rect: TRect);
var
  X, R, G, B: Integer;
begin
  for X := Rect.Top to Rect.Bottom do begin
    R := Round(GetRValue(Color1) + ((GetRValue(Color2) - GetRValue(Color1)) *
      X / (Rect.Bottom - Rect.Top)));
    G := Round(GetGValue(Color1) + ((GetGValue(Color2) - GetGValue(Color1)) *
      X / (Rect.Bottom - Rect.Top)));
    B := Round(GetBValue(Color1) + ((GetBValue(Color2) - GetBValue(Color1)) *
      X / (Rect.Bottom - Rect.Top)));

 
    Canvas.Pen.Color := RGB(R, G, B);
    Canvas.Pen.Width := 1;
    Canvas.Pen.Style := psInsideFrame;

 
    Canvas.MoveTo(Rect.Left, X);
    Canvas.LineTo(Rect.Right, X);
  end;
end;
Ich hoffe das hilft euch um mir weiter ...
ByStones
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat