2007. december 28., péntek
Fade out a bitmap
Problem/Question/Abstract:
Fade out a bitmap
Answer:
Put a TImage and load a bitmap of 24 bits or 32 bits, put a TButton on the form and this code in its OnClick event
procedure TForm1.Button1Click(Sender: TObject);
procedure FadeOut(const BMP: TImage; Pause: integer);
var
BytesPorScan: integer;
w, h: integer;
p: pByteArray;
counter: integer;
begin
{ This only works with 24 or 32 bits bitmaps }
if not (BMP.Picture.Bitmap.PixelFormat in [pf24Bit, pf32Bit]) then
raise exception.create('Error, bitmap format not supported.');
try
BytesPorScan := Abs(Integer(BMP.Picture.Bitmap.ScanLine[1]) -
Integer(BMP.Picture.Bitmap.ScanLine[0]));
except
raise exception.create('Error');
end;
{ Decrease the RGB components of each single pixel }
for counter := 1 to 256 do
begin
for h := 0 to BMP.Picture.Bitmap.Height - 1 do
begin
P := BMP.Picture.Bitmap.ScanLine[h];
for w := 0 to BytesPorScan - 1 do
if P^[w] > 0 then
P^[w] := P^[w] - 1;
end;
Sleep(Pause);
BMP.Refresh;
end;
end; {procedure FadeOut}
begin
FadeOut(Image1, 5);
end;
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése