win10 uwp 截图 获取屏幕显示界面保存图片

简介:

本文主要讲如何保存我们的屏幕显示的,保存为图片,也就是截图,截我们应用显示的。

UWP有一个功能,可以截图,RenderTargetBitmap

我们首先写一个Grid,我们需要给他名字,我这里给他Stamp

然后我们可以使用RenderTargetBitmap保存我们屏幕Grid显示的


            var bitmap = new RenderTargetBitmap();

            StorageFile file = await KnownFolders.PicturesLibrary.CreateFileAsync("1.jpg",

                CreationCollisionOption.GenerateUniqueName);

            await bitmap.RenderAsync(Stamp);

            var buffer = await bitmap.GetPixelsAsync();

            using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite))

            {

                var encod = await BitmapEncoder.CreateAsync(

                    BitmapEncoder.JpegEncoderId, stream);

                encod.SetPixelData(BitmapPixelFormat.Bgra8,

                    BitmapAlphaMode.Ignore,

                    (uint)bitmap.PixelWidth,

                    (uint)bitmap.PixelHeight,

                    DisplayInformation.GetForCurrentView().LogicalDpi,

                    DisplayInformation.GetForCurrentView().LogicalDpi,

                    buffer.ToArray()

                   );

                await encod.FlushAsync();

            }

await bitmap.RenderAsync(Stamp);能把一个UIelement显示转为图片,不过这个图片我们需要用BitmapEncoder才可以保存为我们的图片

BitmapEncoder可以保存为bmp、jpg、gif、png

保存需要使用SetPixelData BitmapPixelFormat pixelFormat, BitmapAlphaMode alphaMode, System.UInt32 width, System.UInt32 height, System.Double dpiX, System.Double dpiY, [Range(0, int.MaxValue)] System.Byte[] pixels

我们在Grid放一个Image,然后可以看到,我们的原图

这里写图片描述

这里写图片描述

我们把图片一部分不显示


       <Grid x:Name="Stamp" >

            <Image x:Name="image" Width="500"

                   Margin="200,10,10,10">

            </Image>

        </Grid>

这里写图片描述

可以看到我们有部分被裁掉

这里写图片描述

假如我们不显示Grid


  <Grid Grid.Row="0" Background="White"></Grid>

没影响

那么我们要显示我们的图片显示全,我们可以


        <ScrollViewer VerticalScrollBarVisibility="Visible"

                      HorizontalScrollBarVisibility="Visible">

            <Grid x:Name="Stamp" >

                <Image x:Name="image" Width="500"

                   Margin="300,10,10,10">

                </Image>

            </Grid>

        </ScrollViewer>

这里写图片描述

这里写图片描述

我们可以在滚动条写大小为很小,但是Width="1"就出错,我们不需要把他放在用户可视的,也就是放在最底层也是可以

参见:http://www.zmy123.cn/?p=1257

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

目录
相关文章
|
7月前
|
图形学
|
10月前
|
Windows
【Windows】显示缩略图非图标/开启缩略图
【Windows】显示缩略图非图标/开启缩略图
56 0
|
编解码 监控 图形学
Unity 窗口界面的简单介绍
Unity 窗口界面的简单介绍
382 0
Unity 窗口界面的简单介绍
|
搜索推荐 Windows
Win10桌面图标显示问题
Win10桌面图标显示问题
172 2
|
Android开发 iOS开发
iOS实现点击图片放大&长按保存图片
在项目中免不了会遇到,实名认证上传身份证、绑定银行卡等功能。在实际操作中呢,会涉及到上传图片,在页面布局时,可能图片不是一张,考虑到布局的美观等因素,显示图片的位置变得很小,如果想查看上传的图片是否清晰,内容是否完整,可能就需要放大才能实现,下面就和大家分享一下我封装的一类,完美的实现了图片的缩放功能。
265 0
SwiftUI—如何在预览窗口使用不同的模拟器预览用户界面
SwiftUI—如何在预览窗口使用不同的模拟器预览用户界面
289 0
SwiftUI—如何在预览窗口使用不同的模拟器预览用户界面
|
Windows
Windows 10下Markdown不能显示预览
Windows 10下Markdown不能显示预览 结局办法 下载awesomium的SDK,安装后重启Markdown即可 实测最新版本的SDK不行,建议安装1.
801 0
使用Halcon库,在MFC界面打开显示图片,可实现多次打开不同图片
使用Halcon库,在MFC界面打开显示图片,可实现多次打开不同图片
345 0
|
图形学 Windows
Unity调用Windows对话框保存时另存为弹框
Unity开发VR之Vuforia 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
1219 0
|
Windows
Win10系统怎样让图片的打开方式为照片查看器?
在Win10系统中有一个最不方便的地方就是图片的打开方式没有照片查看器,如果想恢复传统的照片查看器该怎么操作呢? 方法步骤:   1. 首先,我们需要使用 注册表编辑器 来开启Win10系统照片查看器功能,因为其实这个功能是被隐藏了,那么按下 Windows徽标键+R键 ,打开运行命令窗口,输入 regedit 命令。
1146 0