var p :PByteArray; x,y,p3 :Integer; Bmp :TBitmap; begin Bmp :=TBitmap.Create; Bmp.Assign(Image.Picture.Bitmap); bmp.pixelformat:=pf24bit; //这样保险:) for y:=0 to Bmp.Height-1 do begin p:=Bmp.scanline[y]; for x:=0 to Bmp.Width-1 do begin p[0]:=(p[2]*2 + p[1] * 5 + p[0]) shr 3; p[1]:=p[0]; p[2]:=p[2]; inc(p,3); end; end; Image.Picture.Bitmap.Assign(Bmp); Bmp.Free; end;这是将bmp真彩图片转为灰阶图片的代码
p :PByteArray;
x,y,p3 :Integer;
Bmp :TBitmap;
begin
Bmp :=TBitmap.Create;
Bmp.Assign(Image.Picture.Bitmap);
bmp.pixelformat:=pf24bit; //这样保险:)
for y:=0 to Bmp.Height-1 do
begin
p:=Bmp.scanline[y];
for x:=0 to Bmp.Width-1 do
begin
p[0]:=(p[2]*2 + p[1] * 5 + p[0]) shr 3;
p[1]:=p[0];
p[2]:=p[2];
inc(p,3);
end;
end;
Image.Picture.Bitmap.Assign(Bmp);
Bmp.Free;
end;这是将bmp真彩图片转为灰阶图片的代码
IE的按钮不就是你所要的效果吗
GraphicEx就支持N种格式