假如你是想调整个图像的颜色的话,前天我刚回答过类似的问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3552952
假如你只想改变图片中的一种颜色为其它颜色,那你就要先知道此颜色的值,下面代码从别人那里拷贝而来,你试试吧
procedure TransFormColor(Bmp: TBitmap; OldColor, NewColor: TColor);
var
i, j: Integer;
P: PByteArray;
Color: TColor;
R, G, B: Byte;
begin
R := GetRValue(NewColor);
G := GetGValue(NewColor);
B := GetBValue(NewColor);
Bmp.PixelFormat := pf24bit;
for j := 0 to Bmp.Height - 1 do
begin
P := Bmp.ScanLine[j];
for i := 0 to Bmp.Width - 1 do
begin
Color := RGB(P[i * 3 + 2], P[i * 3 + 1], P[i * 3]);
if Color = OldColor then
begin
P[i * 3 + 2] := R;
P[i * 3 + 1] := G;
P[i * 3] := B;
end;
end;
end;
end;
Sample:
//将 Image1 中的白色替换为黑色
TransFormColor(Image1.Picture.Bitmap, clWhite, clBlack);
Image1.Refresh;