Please see my recent answer about zooming: Zoom image in C# .net mouse wheel
Drawing shapes on the image is very similar to that. You can have a source image loaded from file, with something which would be a background for your shapes, the take the image which is already zoomed as described in my answer referenced above. At this moment, you already have the instance of
you can use for drawing on the image. If you don't use zoom, the previous steps explains how to obtain such instance. This way, you can have original or zoomed image with some drawing on top of it.
For ASP.NET, you will need one more step. You either save your image on the server side and reference it in the
element generated on your ASP.NET page. But more likely, you would need to generate images on the fly, without saving a file. In this case, the URI used in the
attribute should point to ASPX generating the image by using the class
and appropriate content type
which will tell the browser it's an image of certain type:
The code sample shown in the MSDN article referenced above happens to be exactly what you need, generating a JPEG file, but you can generate PNG or anything else.