Screenshot: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Dietsch (Diskussion | Beiträge)
K verlinkung vervollständigt, finalisiert
Florian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 22: Zeile 22:


== Erstellen von [[Screenshot]]s aus XNA ==
== Erstellen von [[Screenshot]]s aus XNA ==
[[XNA]] bietet die Möglichkeit, aus einem laufenden Spiel heraus [[Screenshot]]s zu erstellen. Der folgende Beispielcode zeigt eine Methode, die einen [[Screenshot]] aufnimmt. Diese kann beispielsweise beim Drücken einer bestimmten Taste aufgerufen werden.


<source lang="csharp">
<source lang="csharp">
private void Screenshot()
private void Screenshot()
{
{
  ResolveTexture2D screenshot;
  //create a render target to render the screenshot into
  RenderTarget2D screenshotTarget = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8);


  screenshot = new ResolveTexture2D(graphics.GraphicsDevice,
  //set the render target on the graphics device
                  graphics.GraphicsDevice.PresentationParameters.BackBufferWidth,  // Die gesamte sichtbare Breite des Backbuffers
  GraphicsDevice.SetRenderTarget(screenshotTarget);
                  graphics.GraphicsDevice.PresentationParameters.BackBufferHeight, // Die gesamte sichtbare Höhe des Backbuffers
                  1,                                                              // Die Ebene. In der Regel immer die oberste Ebene, also 1
                  SurfaceFormat.Color))                                           // Das Pixelformat der neuen Textur


  graphics.GraphicsDevice.ResolveBackBuffer(screenshot); // Alle Daten des Backbuffers in eine Textur umwandeln (Screenshot aufnehmen)
  //call the draw code of the game to draw it into the render target
  screenshot.Save("screenshot.bmp", ImageFileFormat.Bmp); // Die erstellte Textur abspeichern.
  this.Draw();
 
  //create a filestream to save the rendered screenshot onto disk
  FileStream fs = new FileStream("screen.png", FileMode.OpenOrCreate);
 
  //reset the render target of the graphics device for normal drawing
  GraphicsDevice.SetRenderTarget(null);
 
  //save the screenshot to disk and close the file stream
  screenshotTarget.SaveAsPng(fs, screenshotTarget.Width, screenshotTarget.Height);
  fs.Flush();
  fs.Close();
}
}
</source>
</source>
[[XNA]] bietet auch viele andere Formate, in denen das Bild abgespeichert werden kann. Eine Liste aller unterstützten Dateiformate befindet sich [http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.imagefileformat(XNAGameStudio.30).aspx hier].


[[Kategorie:Tools]]
[[Kategorie:Tools]]
[[Kategorie:Tutorials]]
[[Kategorie:Tutorials]]
[[Kategorie:Begriffe]] [[Kategorie:Code-Beispiele]]
[[Kategorie:Begriffe]] [[Kategorie:Code-Beispiele]]
[[Kategorie:MS02]]
[[Kategorie:MS03]]
[[Kategorie:MS04]]
[[Kategorie:MS05]]
Abgerufen von „https://sopranium.de/Screenshot