1,183
社区成员
发帖
与我相关
我的任务
分享
newbmp := TBitmap.Create;
newbmp.Assign(bitmap);
newbmp.PixelFormat := pf32bit;
for Y := 0 to bitmap.Height - 1 do
begin
P := newbmp.ScanLine[Y];
for X := 0 to bitmap.Width - 1 do
begin
gray := Round(0.299 * P[3 * X + 2] + 0.587 * P[3 * X + 1] + 0.11 * P[3 * X]);
//gray := Round(P[X]);
// 灰化的计算公式
if (gray > 128) then
gray := 255
else
gray := 0;
// 128为阙值
//P[X] := gray;
P[3 * X + 2] := gray;
P[3 * X + 1] := gray;
P[3 * X] := gray;
end;
end;
bitmap.Assign(newbmp);