我把 自编转成灰度图的过程 也给你吧
procedure TForm1.ToGray(abmp:TBitmap; rx,gx,bx,xx:integer);
var
i,j:integer;
pchar;
c:byte;
begin
abmp.HandleType := bmDIB;
abmp.PixelFormat := pf24bit;
for i:=0 to abmp.Height-1 do
begin
p := abmp.ScanLine;
for j:=1 to abmp.Width do
begin
c := (integer(p^)*rx+integer((p+1)^)*gx+integer((p+2)^)*bx) div xx;
if not(c<255) then c := 255;
p^ := chr(c); //
(p+1)^ := chr(c); //
(p+2)^ := chr(c); //R=G=B
inc(p,3);
end;
end;
end;