2010-09-16 19 views
5

C'è una buona libreria che posso usare in C# per fare uno screenshot/istantanea?Libreria C# per scattare screenshot?

Uno dove posso trascinare e rilasciare una regione del mio schermo, per prendere uno screenshot/istantanea di esso?

risposta

5

Io non sono a conoscenza di librerie che consentono di visivamente selezionare una regione sullo schermo, ma uno screenshot di tutto lo schermo può essere assunto con il metodo Graphics.CopyFromScreen come segue:

var bounds = Screen.PrimaryScreen.Bounds; 
using (var bmp = new Bitmap(bounds.Width, 
          bounds.Height, 
          PixelFormat.Format32bppArgb)) 
using (var gfx = Graphics.FromImage(bmp)) 
{ 
    gfx.CopyFromScreen(bounds.X, 
         bounds.Y, 
         0, 
         0, 
         bounds.Size, 
         CopyPixelOperation.SourceCopy); 
    bmp.Save("shot.png"); 
} 
+2

utilizzare il codice in alto, quindi, crea una forma senza bordi e al massimo con quella cattura a schermo intero che hai appena creato. Consenti all'utente di disegnare la propria area sul modulo. Quindi traduci le coordinate che specificano in un ritaglio dell'intera immagine. –