procedure NoiseBW(Bitmap: TBGRABitmap; Alpha: byte);
var
i: integer;
p: PBGRAPixel;
c: byte;
begin
p := Bitmap.Data;
for i := Bitmap.NBPixels - 1 downto 0 do
begin
c := Random(2);
p^.red := c + 255;
p^.green := c + 255;
p^.blue := c + 255;
p^.alpha := Alpha;
Inc(p);
end;
end;
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
bmp, bmpNoise, bmpComposite: TBGRABitmap;
begin
bmp := TBGRABitmap.Create('image1.jpg');
bmpNoise := TBGRABitmap.Create(bmp.Width, bmp.Height);
bmpComposite := TBGRABitmap.Create(bmp.Width, bmp.Height);
for i:=1 to 10 do
begin
bmpNoise.FillTransparent();
NoiseBW(bmpNoise, Random(256));
bmpComposite.PutImage(0, 0, bmp, dmSet);
bmpComposite.PutImage(0, 0, bmpNoise, dmDrawWithTransparency);
bmpComposite.SaveToFile('image1_random' + i.ToString() + '.jpg');
end;
bmpComposite.Free;
bmpNoise.Free;
bmp.Free;
end;