将图像变为黑白即为改为色彩饱和度的一个极限方法,我做了一色彩饱和度
处理程序,只是速度太慢,我又把它去了,我想有那些应该够了,举一反三嘛!
没办法只好献丑了。
原代码:
procedure TForm4.TrackBar2Change(Sender: TObject);
var
i,j,bmpheight,bmpwidth:integer;
gr,gg,gb,grey:integer;
newBmp:TBitmap;
ch:integer;
begin
Edit2.Text:=inttostr(TrackBar2.Position);
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
for i:=1 to bmpwidth do begin
for j:=1 to bmpheight do begin
gr:=GetRValue(Image1.Canvas.Pixels[i,j]);
gg:=GetGValue(Image1.Canvas.Pixels[i,j]);
gb:=GetBValue(Image1.Canvas.Pixels[i,j]);
grey:=(gr+gg+gb) div 3;
gr:=grey+(gr-grey)div 10*(10+TrackBar2.Position);
gg:=grey+(gg-grey)div 10*(10+TrackBar2.Position);
gb:=grey+(gb-grey)div 10*(10+TrackBar2.Position);
newbmp.Canvas.Pixels[i,j]:=RGB(gr,gg,gb);
end;
form4.Canvas.Draw(50,25,newbmp);
end;
newbmp.free;
end;
注:TrackBar2的最大值为10;最小什值为-10;