Windows Phone 7 截取当前屏幕保存图像的代码
2011-04-22 14:16 Terry_龙 阅读(2217) 评论(8) 编辑 收藏 举报导入以下命名空间:
using System.Windows.Media.Imaging;
using System.IO;
using Microsoft.Xna.Framework.Media;
全部代码如下:
1 public void CaptureScreen(object sender, EventArgs e)
2 {
3 WriteableBitmap bmp = new WriteableBitmap(480, 800);
4 bmp.Render(App.Current.RootVisual, null);
5 bmp.Invalidate();
6
7 MemoryStream stream = new MemoryStream();
8 bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 80);
9 stream.Seek(0, SeekOrigin.Begin);
10
11 MediaLibrary library = new MediaLibrary();
12 string fileName = "ScreenShot_" + DateTime.Now.ToString("yyyy-mm-dd_hh:mm:ss");
13 library.SavePicture(fileName, stream);
14 stream.Close();
15
16
17 Dispatcher.BeginInvoke(() =>
18 {
19 PictureCollection picCollection = library.Pictures;
20 foreach (Picture item in picCollection)
21 {
22 if (item!=null)
23 {
24 BitmapImage bitmap = new BitmapImage();
25 bitmap.SetSource(item.GetImage());
26 ScreenShot.Source = bitmap;
27 PicName.Text ="图片名称 :"+ item.Name;
28 }
29
30 }
31 });
32
33
34
2 {
3 WriteableBitmap bmp = new WriteableBitmap(480, 800);
4 bmp.Render(App.Current.RootVisual, null);
5 bmp.Invalidate();
6
7 MemoryStream stream = new MemoryStream();
8 bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 80);
9 stream.Seek(0, SeekOrigin.Begin);
10
11 MediaLibrary library = new MediaLibrary();
12 string fileName = "ScreenShot_" + DateTime.Now.ToString("yyyy-mm-dd_hh:mm:ss");
13 library.SavePicture(fileName, stream);
14 stream.Close();
15
16
17 Dispatcher.BeginInvoke(() =>
18 {
19 PictureCollection picCollection = library.Pictures;
20 foreach (Picture item in picCollection)
21 {
22 if (item!=null)
23 {
24 BitmapImage bitmap = new BitmapImage();
25 bitmap.SetSource(item.GetImage());
26 ScreenShot.Source = bitmap;
27 PicName.Text ="图片名称 :"+ item.Name;
28 }
29
30 }
31 });
32
33
34
35 }
调用该方法后得到的效果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架