zoukankan      html  css  js  c++  java
  • xna中的截屏操作处理

    游戏中常会用到截图,如果是用默认的截屏键PrintScreen的话,用户又要在另外的地方粘贴才可以。
    这样做的话比较自由:
     1 /// <summary>
     2         /// Saves a screenshot to disk with running number.
     3         /// Does not overwrite existing screenshots.
     4         /// </summary>
     5         public void SaveScreenshot() {
     6             // Find a free name
     7             int number = 0;
     8             string filename = String.Format("screenshot{0:00}.png", number);
     9             while (System.IO.File.Exists(filename)) {
    10                 filename = String.Format("screenshot{0:00}.png"++number);
    11             }
    12 
    13             // Take the screenshot
    14             GraphicsDevice device = graphics.GraphicsDevice;
    15             int w = device.PresentationParameters.BackBufferWidth;
    16             int h = device.PresentationParameters.BackBufferHeight;
    17             using (ResolveTexture2D screenshot = new ResolveTexture2D(device, w, h, 1, SurfaceFormat.Color)) {
    18                 // Grab the screenshot
    19                 device.ResolveBackBuffer(screenshot);
    20 
    21                 // Set the alpha to full
    22                 Color[] data = new Color[screenshot.Width * screenshot.Height];
    23                 screenshot.GetData<Color>(data);
    24                 int pos = 0;
    25                 foreach (Color c in data) {
    26                     data[pos++= new Color(c.R, c.G, c.B, 255);
    27                 }
    28 
    29                 // Write to disk
    30                 screenshot.SetData<Color>(data);
    31                 screenshot.Save(filename, ImageFileFormat.Png);
    32                 screenshot.Dispose();
    33             }
    34         }
  • 相关阅读:
    python作业堡垒机(第十三周)
    Python的一个BOX
    Nginx (限速)限制并发、限制访问速率、限制流量
    Nginx反向代理维基百科镜像制作全解析
    防盗链测试01
    Pycharm和IntelliJ IDEA激活 2017.3.x版本
    [Openwrt 扩展下篇] Openwrt搭建私有云Owncloud 9
    [Openwrt扩展中篇]添加Aria2和webui
    [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享
    python作业(第十一周)基于RabbitMQ rpc实现的主机管理
  • 原文地址:https://www.cnblogs.com/fhmsha/p/1584843.html
Copyright © 2011-2022 走看看