1,184
社区成员




procedure TForm1.FormPaint(Sender: TObject);
var
AShadowBitmap: TBitmap;
A1stBitmap: TBitmap;
A2ndBitmap: TBitmap;
Alpha: Byte;
r, c: Integer;
begin
AShadowBitmap:= TBitmap.Create;
A1stBitmap:= TBitmap.Create;
A2ndBitmap:= TBitmap.Create;
try
AShadowBitmap.Height:= 200;
AShadowBitmap.Width:= 300;
A1stBitmap.Height:= AShadowBitmap.Height;
A1stBitmap.Width:= AShadowBitmap.Width;
A2ndBitmap.Height:= AShadowBitmap.Height;
A2ndBitmap.Width:= AShadowBitmap.Width;
A1stBitmap.Canvas.Pen.Width:= 10;
A1stBitmap.Canvas.Pen.Color:= clRed;
A1stBitmap.Canvas.MoveTo(0, 0);
A1stBitmap.Canvas.LineTo(300, 200);
A2ndBitmap.Canvas.Pen.Width:= 10;
A2ndBitmap.Canvas.Pen.Color:= clBlue;
A2ndBitmap.Canvas.MoveTo(0, 200);
A2ndBitmap.Canvas.LineTo(300, 0);
Alpha:= 200;
for r:= 0 to AShadowBitmap.Height - 1 do begin
for c:= 0 to AShadowBitmap.Width - 1 do begin
AShadowBitmap.Canvas.Pixels[c, r]:=
Round(Alpha / 255 * A1stBitmap.Canvas.Pixels[c, r] + (1 - Alpha / 255) * A2ndBitmap.Canvas.Pixels[c, r]);
end;
end;
Canvas.Draw(0, 0, A1stBitmap);
Canvas.Draw(A1stBitmap.Width + 10, 0, A2ndBitmap);
Canvas.Draw(0, A1stBitmap.Height + 10, AShadowBitmap);
finally
FreeAndNil(A2ndBitmap);
FreeAndNil(A1stBitmap);
FreeAndNil(AShadowBitmap);
end;
end;