| 
 你这个程序速度有问题,哈哈,我把你哪个demo最大化,速度就明显变慢 
 
应该优化一下,如:只滚动变化哪一块, 
哈哈,不好意思,我只是提出了个人使用的感觉 
 
最大化是很占CPU资源的,因为平滑是取附近的点进行运算平滑的,代码: 
  for j := 0 to RGBBmp.Height - 1 do 
  begin 
    pMask := Mask.ScanLine(j); 
    pRGB := RGBBmp.ScanLine[j]; 
    for i := 0 to RGBBmp.Width - 1 do 
    begin 
      Weight := pMask^ * AAlpha shr 8; //混合系数 
      if Weight <> 0 then 
      begin 
        if Weight = 255 then 
        begin                           //前景色 
          pRGB^.rgbtBlue := b; 
          pRGB^.rgbtGreen := g; 
          pRGB^.rgbtRed := r; 
        end 
        else 
        begin                           //混合 
          Inc(pRGB^.rgbtBlue, Weight * (b - pRGB^.rgbtBlue) shr 8); 
          Inc(pRGB^.rgbtGreen, Weight * (g - pRGB^.rgbtGreen) shr 8); 
          Inc(pRGB^.rgbtRed, Weight * (r - pRGB^.rgbtRed) shr 8); 
        end; 
      end; 
    end; 
  end; 
所以控件不能太大,不然运算范围很大,CPU就占用很严重。 
 |