UWP如何保存网络图片,Image控件到文件?

2025-11-26 10:45:44

1、第一种方法是RenderTargetBitmap的方式。

由于Image控件的Source属性可以有BitmapImage或者WriteableBitmap,WriteableBitmap便于保存,而BitmapImage无法直接保存。

这种方法就是用于BitmapImage的图像保存的。

首先是创建文件。使用如图代码,获取Bitmap的UriSource.AbsoluteUri,根据Uri生成文件名。

UWP如何保存网络图片,Image控件到文件?

2、然后,创建一个新的RenderTargetBitmap。RenderTargetBitmap实际上是获取的这个控件渲染的结果。调用RenderAsync获取渲染结果。

接着从RenderTargetBitmap得到像素缓存IBuffer,然后就可以使用IRandomAccessStream和BitmapEncoder编码写入文件了。

UWP如何保存网络图片,Image控件到文件?

3、最终效果如图。这样做的问题在于,得到的图片尺寸并非图片真实尺寸,而是控件的渲染尺寸。

UWP如何保存网络图片,Image控件到文件?

1、第二种方法,是使用WriteableBitmap。前面也说过,BitmapImage和WriteableBitmap都可以作为Image的Source。

虽然Image控件设置Source就可以帮我们下载图片,但是保存却不尽人意。

所以,使用WriteableBitmap自己实现图片下载,有更多的控制权。

如下是一个下载图片,得到WriteableBitmap的函数。

UWP如何保存网络图片,Image控件到文件?

2、WriteableBitmap可以作为Image控件的Source,如图代码设置Image控件的Source。

UWP如何保存网络图片,Image控件到文件?

3、使用如图代码保存WriteableBitmap到文件。

WriteableBitmap可以直接获取PixelBuffer属性,使用ToArray()转变为Byte[],然后用BitmapEncoder编码到文件。

UWP如何保存网络图片,Image控件到文件?

4、最终效果如图所示。可以看到保存到文件是图片真实宽度和高度。

UWP如何保存网络图片,Image控件到文件?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢