C# en Dehors de la Mémoire lors de la Création d'image Bitmap

Je suis en création d'une application (Windows Form) qui permet à l'utilisateur de prendre une capture d'écran sur la base des lieux de leur choix (faites-le glisser pour sélectionner la zone). Je voulais ajouter un peu de "volet de visualisation" c'est le zoom de sorte que l'utilisateur peut sélectionner la région où ils veulent plus précisément (plus de pixels). Sur un événement mousemove j'ai le code suivant...

private void falseDesktop_MouseMove(object sender, MouseEventArgs e)
    {
        zoomBox.Image = showZoomBox(e.Location);
        zoomBox.Invalidate();
        bmpCrop.Dispose();
    }

private Image showZoomBox(Point curLocation)
    {
        Point start = new Point(curLocation.X - 50, curLocation.Y - 50);
        Size size = new Size(100, 90);
        Rectangle rect = new Rectangle(start, size);
        Image selection = cropImage(falseDesktop.Image, rect);
        return selection;
    }

private static Bitmap bmpCrop;
private static Image cropImage(Image img, Rectangle cropArea)
    {
        if (cropArea.Width != 0 && cropArea.Height != 0)
        {
            Bitmap bmpImage = new Bitmap(img);
            bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
            bmpImage.Dispose();
            return (Image)(bmpCrop);
        }
        return null;
    }

La ligne qui échoue et a les de Mémoire exception est la suivante:

bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);

Fondamentalement, ce que ce n'est qu'il faut 100x90 rectangle autour du pointeur de la souris et tire que dans la zoomBox, qui est un contrôle picturebox. Cependant, dans le processus, j'obtiens une erreur De Mémoire insuffisante. Qu'est-ce que je fais de manière incorrecte ici?

Merci pour votre aide.

Sur quelle ligne est votre exception levée?
Avez-vous de l'élimination bmpCrop?
Et pourquoi êtes-vous créer une nouvelle image recadrée sur chaque déplacement de la souris au lieu de réutiliser une image existante?
edit: la mention de la ligne c'est d'être jeté à l'OP @CodeInChaos, je ne la jetez juste après la zoomBox.Invalidate(); Désolé, j'ai exclu, va ajouter à l'op.
parce que j'ai besoin de la mise à jour de l'image/position de la souris.

OriginalL'auteur Alex | 2010-11-30