Bueno pues parece que si tenia tiempo

, aquí te dejo el algoritmo modificado para crear un degradado de 258x160 (el ancho tiene que ser múltiplo de 6). Espero que te sirva, acuerdate de modificar el tamaño del TImage y poner Streach a FALSE
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
var
h,s,b: integer; i,j: integer;
x,y,z: integer;
begin
Image1.Picture.Bitmap.Width:= 258;
Image1.Picture.Bitmap.Height:= 160;
with Image1.Canvas do
begin
Brush.Color:= clBlack;
FillRect(ClipRect);
b:= 255; for h:= 0 to 257 do
begin
i:= ((h mod 43) * b) div 43;
j:= b - i;
for s:= 0 to 160 do
begin
x:= i + ((b-i) * s) div 160;
y:= j + ((b-j) * s) div 160;
z:= (b * s) div 160;
case (h div 43) of
0: Pixels[h,s]:= RGB(b,x,z);
1: Pixels[h,s]:= RGB(y,b,z);
2: Pixels[h,s]:= RGB(z,b,x);
3: Pixels[h,s]:= RGB(z,y,b);
4: Pixels[h,s]:= RGB(x,z,b);
5: Pixels[h,s]:= RGB(b,z,y);
end;
end;
end;
end;
end;
Recuerda que al ya no usar la propiedad Streach ya no tienes que preocuparte por las corregir las coordenadas del ratón.