附上把彩色Bitmap转化为灰色的代码,如果要改头像,可以直接用就可以了:procedure GrayBitmap(Bit: TBitmap); var i, j, iRGB: Integer; R, G, B: Byte; begin for i := 0 to Bit.Width - 1 do for j := 0 to Bit.Height - 1 do begin iRGB := ColorToRGB(Bit.Canvas.Pixels[i, j]); R := GetRValue(iRGB); G := GetGValue(iRGB); B := GetBValue(iRGB); R := (R + G + B) div 3; Bit.Canvas.Pixels[i, j] := TColor(RGB(R, R, R)); end; end; 例子: procedure TForm1.Button1Click(Sender: TObject); var Bit: TBitmap; begin Bit := TBitmap.Create; try Bit.LoadFromFile('D:\1.bmp'); GrayBitmap(Bit); Bit.SaveToFile('D:\灰色.bmp'); finally Bit.Free; end; end;
var
i, j, iRGB: Integer;
R, G, B: Byte;
begin
for i := 0 to Bit.Width - 1 do
for j := 0 to Bit.Height - 1 do
begin
iRGB := ColorToRGB(Bit.Canvas.Pixels[i, j]);
R := GetRValue(iRGB);
G := GetGValue(iRGB);
B := GetBValue(iRGB);
R := (R + G + B) div 3;
Bit.Canvas.Pixels[i, j] := TColor(RGB(R, R, R));
end;
end;
例子:
procedure TForm1.Button1Click(Sender: TObject);
var
Bit: TBitmap;
begin
Bit := TBitmap.Create;
try
Bit.LoadFromFile('D:\1.bmp');
GrayBitmap(Bit);
Bit.SaveToFile('D:\灰色.bmp');
finally
Bit.Free;
end;
end;