2011-05-21 4 views
0

Possible en double:
.NET Equivalent of Snipping ToolComment saisir la valeur de coordonnées Région prédéfinie pour la capture d'écran?

Mon code ci-dessous prend capture d'écran pour l'écran, mais je voudrais prendre une capture d'écran avec une région prédéfinie. Je préfère cliquer sur un bouton puis faire glisser et sélectionner la région que je veux saisir x, y, destinationX, destinationY valeur. Quelqu'un peut-il me donner un indice ou un exemple de comment faire cela?

bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, 
          Screen.PrimaryScreen.Bounds.Height, 
          PixelFormat.Format32bppArgb); 

// Create a graphics object from the bitmap 
gfxScreenshot = Graphics.FromImage(bmpScreenshot); 

// Take the screenshot from the upper left corner to the right bottom corner      
gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, 
          Screen.PrimaryScreen.Bounds.Y, 
          0, 
          0, 
          Screen.PrimaryScreen.Bounds.Size, 
          CopyPixelOperation.SourceCopy); 

Répondre

0

Je ne l'ai pas vraiment fait beaucoup bitmap/graphiques fonctionnent mais pouvez-vous tout simplement pas capturer X, Y coordonnées des événements MOUSE_DOWN et MOUSE_UP puis utilisez ceux de votre méthode CopyFromScreen

Quelque chose comme:

private void Form1_MouseDown(object sender, MouseEventArgs e) 
    { 
     startX = e.X; 
     startY = e.Y; 
    } 

    private void Form1_MouseUp(object sender, MouseEventArgs e) 
    { 
     endX = e.X; 
     endY = e.Y; 
    } 

Vous pouvez ensuite faire un peu de calcul pour déterminer la taille de la zone à transférer et alimenter votre méthode.

Questions connexes