Einzelnen Beitrag anzeigen

Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#1

Bitmap mit Milchglas-Effekt versehen?

  Alt 9. Okt 2003, 21:38
Moin,

ich versuche gerade mir eine Funktion zu erstellen, die mir einen Ausschnitt eines Bitmaps quasi mit einer Milchglasscheibe überdeckt. Also im Grunde möchte ich einfach eine Weiße Fläche halbtransparent auf ein Bitmap legen. Nur so recht komme ich da nicht weiter.

Das habe ich bisher:

Delphi-Quellcode:
function DrawFrostedGlass(const Bitmap: TBitmap; GlassRect: TRect; Milk: TColor): TBitmap;
var x, y: Integer;
    P: PByteArray;
begin
  Result := TBitmap.Create;
  Result := Bitmap;

  // Den weissen Rahmen malen
  with Result.Canvas do begin
    Pen.Color := Milk;
    Brush.Style := bsClear;
    Rectangle(GlassRect);
  end;

  // Zeilen einzeln auslesen und Pixel einzeln verwursten...
  for y := GlassRect.Top + 1 to GlassRect.Bottom - 1 do
  begin
    P := Result.ScanLine[y];
    for x := GlassRect.Left + 1 to GlassRect.Right - 1 do
    begin
      // Tja, was nun?
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  Bitmap.LoadFromFile('splash_3.bmp');

  Image1.Picture.Bitmap := DrawFrostedGlass(Bitmap, Rect(16, 16, 301, 189), clWhite);

  Bitmap.Free;
end;
Im Screenshot kann man im linken Bitmap sehen, wie das Ergebnis aussieht. Im Bild rechts kann man sehen, wie das ganze mal aussehen soll (das ist mit nem Grafikproggie gemacht). Das Bild links ist im Urzustand auch ohne den weißen Rahmen, den will ich auch mitzeichnen...

Ich hoffe, jemand hat ne coole Idee, wie das so gehen kann!

Gruß

Wormid
Miniaturansicht angehängter Grafiken
milchglas.jpg  
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat