RGB亮度调节
提示:这里可以添加技术概要
核心源码
implementation
uses math;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Self.OpenPictureDialog1.Filter := ‘.bmp|.bmp’;
if self.OpenPictureDialog1.Execute then
begin
Image1.Picture.Bitmap.LoadFromFile(OpenPictureDialog1.FileName);
end;
end;
procedure TForm1.handleClick(Sender: TObject);
var
p: PByteArray;
x, y: Integer;
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
Bmp.Assign(Image1.Picture.Bitmap);
//24位真彩色
Bmp.PixelFormat := pf24Bit;
randomize;
for y := 0 to Bmp.Height - 1 do
begin
p := Bmp.scanline[y];
for x := 0 to Bmp.Width - 1 do
begin
//每个象素点的R、G、B分量进行调节
begin
p[x * 3] := Min(255, p[x * 3] + 20); //不能越界,限制在0~255
p[x * 3 + 1] := Min(255, p[x * 3 + 1] + 20);
p[x * 3 + 2] := Min(255, p[x * 3 + 2] + 20);
end
end;
end;
Image2.Picture.Bitmap.Assign(Bmp);
Bmp.Free;
end;