你这个程序速度有问题,哈哈,我把你哪个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就占用很严重。
|