今日做了个试验,发现AlphaBlend的效率比DrawImage高100倍都不止
今天做了个试验,发现AlphaBlend的效率比DrawImage高100倍都不止!
我先是建立一个Image对象:
Image image(L"skin.png");
然后调用DrawImage方法填充一块70*130的区域:
graph.DrawImage(&image, ...);
发现循环1000次需要2.6秒左右.那平均一次约为2.6毫秒.
如果改用Bitmap类,所需时间稍短一些,约在2.3秒左右,平均一次约为2.3毫秒.
可是改用AlphaBlend,填充相同的区域,循环10万次只需要1.9秒.那么平均一次只需要0.019毫秒.效率提高了100倍都不止.
不知道为什么Image类和Bitmap类(或者是DrawImage方法?)为什么那么慢?
------解决方案--------------------
AlphaBlend是DC贴DC当然快= =!
我先是建立一个Image对象:
Image image(L"skin.png");
然后调用DrawImage方法填充一块70*130的区域:
graph.DrawImage(&image, ...);
发现循环1000次需要2.6秒左右.那平均一次约为2.6毫秒.
如果改用Bitmap类,所需时间稍短一些,约在2.3秒左右,平均一次约为2.3毫秒.
可是改用AlphaBlend,填充相同的区域,循环10万次只需要1.9秒.那么平均一次只需要0.019毫秒.效率提高了100倍都不止.
不知道为什么Image类和Bitmap类(或者是DrawImage方法?)为什么那么慢?
------解决方案--------------------
AlphaBlend是DC贴DC当然快= =!