Ron, Thank you for the well deserved kick in the pants on optimizing the individual grayscale calculations. :) I was too pleased with myself for figuring out that I could read/write the color as an integer versus the separate alpha, red, green, blue bytes and performance boost that yielded as those individual bytes are then re-assembled to recreate that integer value in the Color structure. As I am writing this, I have realized that my logic (and attempt to optimize) was completely flawed from the start as it was all premised on creating and using a Color structure. There is absolutely no need for this structure other than as a pretty box. Oh-well, back to the drawing board. :-O I have never used a profiler, but I will look into it. Unless someone else has an explanation, I will have to chalk this up to the VB compiler optimizing this code segment better than the C# compiler. Thanks again, you made me re-think this and also made me realize that I have become susceptible to falling for the shiny box.:~