Bildschirmausschnitt vergrößert darstellen
-
Guten Tag,
ich möchte einen Teilbereich eines Fullscreen-Spieles auf einem Zweitmonitor anzeigen lassen. Dabei habe ich mir gedacht, das Bild so aufzunehmen:
Rectangle rect = new Rectangle(0, 0, 100, 100); // Wird die Bitmap jetzt doppelt so groß, oder wird der "restliche Teil" // weiß aufgefüllt? 2 * rect.Width, 2 * rect.Height, Bitmap bmp = new Bitmap(2 * rect.Width, 2 * rect.Height, PixelFormat.Format32bppArgb); Graphics g = Graphics.FromImage(bmp); g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
und einfach in einer PictureBox anzeigen lassen.
Die Frage, die ich mir nebenbei stelle, steht im Code als Kommentar.Darauf würde ich gerne ein Ticker drauf los lassen, der das ganze 20 mal in der Sekunde macht.
Geht es etwas performanter?
-
Wird die Bitmap jetzt doppelt so groß, oder wird der "restliche Teil"
// weiß aufgefüllt? 2 * rect.Width, 2 * rect.Height,Der Screenabschnitt der kopiert wird ist jetzt 200x200. Das zu probieren war ne Sache von 30 Sekunden..
Das sollte es klarer machen:
Bitmap bmp = new Bitmap(2 * 100, 2 * 100, PixelFormat.Format32bppArgb); Graphics g = Graphics.FromImage(bmp); g.CopyFromScreen(0, 0, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
Geht es etwas performanter?
Zum Beispiel indem du wie hier DirectX verwendest.
Aber zuerst würde ich probieren ob die unperformantere Lösung nicht reicht.