I wouldn't go as far as Gunawan as to say that storing images in the DB is a "worst practice", but it's definitely not a way that I recommend. I prefer image files and thumbnails stored separately on the server file system itself.
To answer your questions: ~ The image support in .NET is limited in comparison to that offerred by third party tools like AspJpeg. Also, much of the image processing code I've seen eschews the use of GDI+ (for performance reasons) and instead uses unsafe code blocks that modify byte pointers. Therefore, my suggestion would be to use the AspJpeg library which is probably optimized for the kind of image processing you are looking for. ~ Yes, you could definitely have a class which accepts a bitmap and whose functions include the modification of the image as you desire. ~ See answer to Q. 1 ~ The AspJpeg site is quite detailed in this respect. I believe they even provide source code for the components.
