现在想获取一个背景图片的平均RGB。请问如何得到。

解决方案 »

  1.   

    是把整幅图像的所有点的R加起来,所有点的G加起来,所有点的B也加起来
    然后分别除以点的个数?
      

  2.   

    TColor 就是一个LongInt.可以把全部像场的TColor值加起来平均,再得其R,G,B值.
      

  3.   

    获取某点的颜色:Image.Canvas.Pixels[x,y]
    获取R、G、B值: GetRValue、GetGValue、GetBValue
      

  4.   

    在Image里面放一张bmp图var i,j:integer;
        sum:integer;
        r,g,b:integer;
    begin
      with Image1 do
      begin
        sum:=Picture.Width*Picture.Height;
        r:=0;g:=0;b:=0;
        for i:=0 to Picture.Width-1 do
           for j:=0 to Picture.Height-1 do
             begin
               r:=r+GetRValue(Canvas.Pixels[i,j]);
               g:=g+GetGValue(Canvas.Pixels[i,j]);
               b:=b+GetBValue(Canvas.Pixels[i,j]);
             end;
      end;
      r:=r div sum;
      g:=g div sum;
      b:=b div sum;
      Form1.Color:=rgb(r,g,b);
      ShowMessage(Format('%d %d %d',[r,g,b]));
    end;
      

  5.   

    用getbkcolor(getdc(0))就可以了吧。