Bitmap transformations can be clumsy.
Here is a helper class that uses the namespaces below, and does most of the common image transformation tasks, including grayscale, (or REDscale for that matter :)), resize, append a border, draw one image on another etc...
I will also post a sample ASP.NET page that utilizes this class in the future...
Hope it helps.
PS: Getting the actual number of bytes is another tricky part. you cannot get it from the bitmap or image object, you need to save it to a temporary stream first, which I opt for NOT doing it for performance reasons.
If anybody is aware of a neat way, let me know.