It wouldn't be difficult to write, but it seems a strange way to do it: why are you "zooming" an image by doublingthe size? Why not do the zoom in the paint routine, where you would only enlarge the actual bit they are viewing? You can do that by constructing a Matrix object and apply a scale factor before using it to transform the graphics object. Easy, quick and simple:

Add the Matrix to your class:

C#

`using System.Drawing.Drawing2D;`

Construct a new matrix:

C#

```
Matrix m = new Matrix();
```

Scale the X by 1/2 and the y by 1 1/2:

C#

m.Scale(0.5F, 1.5F);

Apply the transformation:

C#

e.Graphics.Transform = m;