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
Debuggers don't remove Bugs, they only show them in Slow-Motion.