//灰度化 h
procedure Thuidu(b : TBitmap);
var
Gray, x, y : Integer;
data : TBitmapData ;
p: PByteArray;
begin
if b.Map( TMapAccess.ReadWrite, data) then
begin
for y := 0 to data.Height - 1 do
begin
p := data.GetScanline(y);
for x := 0 to data.Width - 1 do
begin
Gray := Round(p[x * 4 + 2] * 0.3 +
p[x * 4 + 1] * 0.59 +
p[x * 4] * 0.11);
p[x * 4]:= Gray; p[x * 4 + 1] := Gray; p[x * 4 + 2] := Gray;
p[x * 4 + 3] := 255;
end;
end;
b.Unmap(data);
end;
end;
//图像的反色 f
procedure Tfanse(b : TBitmap);
var
Gray, x, y : Integer;
data : TBitmapData ;
p: PByteArray;
begin
if b.Map( TMapAccess.ReadWrite, data) then
begin
for y := 0 to data.Height - 1 do
begin
p := data.GetScanline(y);
for x := 0 to data.Width - 1 do
begin
p[x * 4]:= not p[x * 4];
p[x * 4 + 1] := not p[x * 4 + 1];
p[x * 4 + 2] := not p[x * 4 + 2];
p[x * 4 + 3] := 255;
end;
end;
b.Unmap(data);
end;
end;
delphi FMX图像的灰度化和反色
最新推荐文章于 2022-08-10 12:03:37 发布