var
x2,y2,x3,y3:Real;
x,y:Integer;
Color1,Color2,Color3,Color4:Integer;
CR,CG,CB,CR1,CG1,CB1,CR2,CG2,CB2,CR3,CG3,CB3,CR4,CG4,CB4:Integer;
//坐标为real
x2:=10。2
y2:=30。7
//取坐标的绝对值
x:=trunc(x);
y:=trunc
;
x3:=x-x1;
y3:=y-y1;
Color1:=Bmp.Canvas.Pixels[x,y];
Color2:=Bmp.Canvas.Pixels[x+1,y];
Color3:=Bmp.Canvas.Pixels[x,y+1];
Color4:=Bmp.Canvas.Pixels[x+1,y+1];
CR1:=GetRValue(Color1);
CG1:=GetGValue(Color1);
CB1:=GetBValue(Color1);
CR1:=(1-x3)*CR1;
CG1:=(1-x3)*CG1;
CB1:=(1-x3)*CB1;
CR2:=GetRValue(Color2);
CG2:=GetGValue(Color2);
CB2:=GetBValue(Color2);
CR2:=CR1+x3*CR2;
CG2:=CG1+x3*CG2;
CB2:=CB1+x3*CB2;
CR3:=GetRValue(Color3);
CG3:=GetGValue(Color3);
CB3:=GetBValue(Color3);
CR3:=(1-x3)*CR3;
CG3:=(1-x3)*CG3;
CB3:=(1-x3)*CB3;
CR4:=GetRValue(Color4);
CG4:=GetGValue(Color4);
CB4:=GetBValue(Color4);
CR4:=CR3+x3*CR4;
CG4:=CG3+x3*CG4;
CB4:=CB3+x3*CB4;
CR:=round((1-y3)*CR2+y3*CR4);
CG:=round((1-y3)*CG2+y3*CG4);
CB:=round((1-y3)*CB2+y3*CB4);
应该很容易看懂 随便写的 没有优化过 见笑