WPF 将磁盘中图片拷贝到内存中,将内存中图片给Image控件,再将磁盘中图片删除
时间: 2024-03-03 11:52:41 浏览: 82
可以的,您可以使用以下步骤:
1. 从磁盘中读取图片并将其存储在内存中。
```csharp
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.UriSource = new Uri(@"C:\Images\myImage.jpg");
bitmap.EndInit();
```
2. 将内存中的图片设置为Image控件的Source属性。
```csharp
myImage.Source = bitmap;
```
3. 从磁盘中删除该图片。
```csharp
File.Delete(@"C:\Images\myImage.jpg");
```
请注意,如果Image控件仍在使用该图片,那么在尝试删除它时可能会出现异常。因此,最好在删除图片之前确保不再需要它。另外,使用BitmapCacheOption.OnLoad选项可以确保在加载图片时将其完全读入内存中,这样您就可以在没有文件系统访问权限的情况下继续使用它。
相关问题
将磁盘中的图片拷贝到内存中,再将内存中的图片给到WPF的Image控件做源,为什么删除磁盘内图片后,Image不再显示对应图片
这因为你在将磁盘中的图片拷贝到内存中后,WPF的Image控件使用的是内存中的图片,而不是磁盘中的图片。当你删除磁盘中的图片后,内存中的图片依然存在,但是由于磁盘中的图片已经被删除,所以无法再次访问磁盘中的图片。因此,WPF的Image控件无法再次显示对应的图片。如果要解决这个问题,可以在删除磁盘中的图片之前,先将内存中的图片释放,或者重新加载磁盘中的图片。
WPF可以将磁盘中的图片给Image控件再删除掉磁盘内控件吗
可以的。您可以使用以下步骤:
1. 从磁盘中加载图片并将其设置为Image控件的Source属性。
```csharp
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(@"C:\Images\myImage.jpg");
bitmap.EndInit();
myImage.Source = bitmap;
```
2. 从磁盘中删除该图片。
```csharp
File.Delete(@"C:\Images\myImage.jpg");
```
请注意,如果Image控件仍在使用该图片,那么在尝试删除它时可能会出现异常。因此,最好在删除图片之前确保不再需要它。
阅读全文