下面这段代码本来我以为写对了,也交差了,后来才发现s与v的值都少除255。这下我该怎么办呢,地址都是字节地址却要传一个双精度数?......
type//相关类型定义
    TRGB=record
         R,G,B:BYTE;
         end;
    TRGBLine=array[0..65535]of TRGB;
    PRGBLine=^TRGBLine;
    arr=array[0..255]of byte;
    THue=0..359;
    THSV=record
         H:THue;
         S,V:byte;
    end;
......
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
    scanline:PRGBLine;
    H:Thue;
    S,V:byte;
    bmp:Tbitmap;
begin
    bmp:=TBitmap.Create;
    bmp.Assign(image1.picture.Bitmap);
    for i:=0 to image1.Height-1 do
    begin
      scanline:=Bmp.Scanline[i];
      for j:=0 to bmp.Width-1 do
      begin
        rgb2hsv(scanline[j].R,scanline[j].G,scanline[j].B,H,S,V);
        scanline[j].R:=H;
        scanline[j].G:=S;//现在要把s和v的值都除255,除了之后就变成double了,因为s和v的值本来是0到255之间的数
        scanline[j].B:=V;
      end;
    end;
    Image2.Picture.Bitmap.Assign(bmp);
    Image2.Refresh;
    bmp.Free;
end;