把jpg转成bmp,处理完再转成jpg,以下代码速度很快。
bmp的灰度代码如下:
//真彩图灰度化
procedure Gray(bmp: TBitmap);
var
p: PByteArray;
w: Integer;
i, j: Integer;
begin
bmp.pixelformat := pf24bit;
for i := 0 to bmp.height - 1 do begin
p := bmp.ScanLine;
for j := 0 to (bmp.width-1) do begin
w :=(p[3*j]*28 + p[3*j+1]*151 + p[3*j+2]*77);
w := w shr 8;
w := byte(w);
p[3*j] := w;
p[3*j+1] := w;
p[3*j+2] := w;
end;
end;
end;