zoukankan      html  css  js  c++  java
  • windows phone 手机截图

      无聊在商城找了一款小游戏玩,看到一个截屏功能,就google了一下具体实现,还是比较简单的,主要是靠WriteableBitmap(提供一个可写入并可更新的 BitmapSource)类实现。看一下msdn的介绍

    生成从任何 UIElement 开始的可视化树的位图快照

    ·使用 WriteableBitmap.WriteableBitmap 构造 WriteableBitmap。

    ·若要在 UI 中显示图像,请将 WriteableBitmap 用作图像处理控件(如 Image)的源,或用作 ImageBrush 的源图像。

    ·如果您希望多次呈现此位图,并为其他快照重新使用该实例,请使用 Render 方法。 需要在 Render 后调用 Invalidate,以便呈现新图像。

    ·可以通过将转换传递给构造函数,或通过传递标识转换或 null 取消任何转换保留 UIElement 上的任何现有 RenderTransform。

    代码实现比较简单

    WriteableBitmap wBitmap = new WriteableBitmap((int)this.ActualWidth,(int)this.ActualHeight);
    wBitmap.Render(LayoutRoot, new MatrixTransform());//UIElement参数用来指出要绘制的元素,Transform参数用来在绘制成位图前的变换
    wBitmap.Invalidate();//强制它重绘其内容并正确显示
    img.Source = wBitmap;
    
    //真机测试代码,写入到媒体库
    //using (MemoryStream stream = new MemoryStream())
    //{     
    //    WriteableBitmap对象进行编码,设置宽和高写入到jpg流中   
    //    wBitmap.SaveJpeg(stream, wBitmap.PixelWidth, wBitmap.PixelHeight, 0, 100);
    //    stream.Seek(0, SeekOrigin.Begin);
    //    new MediaLibrary().SavePicture("应用截图.jpg", stream); //MediaLibrary对象提供设备媒体库的访问(音乐,图片等)
  • 相关阅读:
    bzoj1455-罗马游戏
    bzoj1206-[HNOI2005]虚拟内存
    bzoj2762-[JLOI2011]不等式组
    bzoj2729-[HNOI2012]排队
    [模板] 高精度加/减/乘
    bzoj1013-[JSOI2008]球形空间产生器
    bzoj1002-[FJOI2007]轮状病毒
    什么是Redis缓存穿透、缓存雪崩和缓存击穿
    CentOS 7 中英文桌面安装步骤详细图解
    Redis数据操作
  • 原文地址:https://www.cnblogs.com/my-tzc/p/3221687.html
Copyright © 2011-2022 走看看