Quote Originally Posted by LaVolpe View Post
I think you should print out X & Y after the loop. You might be surprised at their values. I'm sure values will be much larger than picGraphicsEffects.ScaleWidth & picGraphicsEffects.ScaleHeight respectively; about 15x larger. And if I'm right, you are doing 15x more BitBlt calls than needed, fix it, then look at the value of e after the fixes.

nr = nr + nr can be about 3 times faster than nr = nr * 2 and both equations have same answer. This of course depends on the CPU and whether VB does any internal optimization on such calculations during compilation.

Consider removing the DoEvents; shouldn't be needed & will slow down the result.
1st - i use picGraphicsEffects.ScaleWidth and for the actual image size. if is more big, then tell me how resolve these, because i don't know;

2nd - to be honest i have tested the time that bitblt is called and it's working fine

3rd - "nr = nr + nr can be about 3 times faster than nr = nr * 2" thanks for the tip