C# 能否将磁盘内的图片保存到内存里在删除掉磁盘内的图片?
时间: 2023-10-04 21:04:49 浏览: 54
是的,C#可以将磁盘内的图片保存到内存中,然后在删除磁盘中的图片。你可以使用System.Drawing.Image类来加载磁盘中的图片,然后使用MemoryStream类来将其保存到内存中。下面是一个示例代码:
```
string imagePath = @"C:\example.jpg";
Image image = Image.FromFile(imagePath);
MemoryStream memoryStream = new MemoryStream();
image.Save(memoryStream, image.RawFormat);
File.Delete(imagePath);
```
在这个示例中,我们首先加载了磁盘中的图片,然后将其保存到内存中,最后删除了磁盘中的图片。请注意,我们使用了Image类的RawFormat属性来确保保存的图像格式与原始图像格式相同。
相关问题
c#图片必须保存到本地吗
不一定。C#可以通过网络协议直接从网络上获取图像并在内存中处理,也可以将图像保存到本地磁盘。如果需要在应用程序中对图像进行处理,可以将图像加载到内存中进行操作,如果需要将图像在应用程序之间共享,可以将其保存到本地磁盘或者使用网络协议共享。在C#中,可以使用System.Drawing命名空间提供的类来处理和操作图像。
c#一边显示图片一边保存
您可以通过以下方式实现在C#中一边显示图片一边保存:
1. 创建一个PictureBox控件来显示图片
2. 使用OpenFileDialog控件让用户选择图片文件
3. 使用FileStream类创建一个文件流,将图片保存到磁盘上的指定位置
4. 使用Image.FromFile方法将图片加载到PictureBox控件中显示
下面是一个示例代码:
```csharp
private void btnSave_Click(object sender, EventArgs e)
{
//打开文件对话框选择图片
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Image files (*.jpg, *.jpeg, *.png) | *.jpg; *.jpeg; *.png";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
//创建文件流,将图片保存到磁盘上的指定位置
string fileName = openFileDialog.FileName;
using (FileStream fs = new FileStream(@"D:\test.jpg", FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = File.ReadAllBytes(fileName);
bw.Write(data);
}
}
//将图片加载到PictureBox控件中显示
pictureBox1.Image = Image.FromFile(fileName);
}
}
```
在这个示例代码中,我们使用了OpenFileDialog控件来让用户选择图片文件,并使用FileStream类将图片保存到磁盘上的指定位置。然后,我们使用Image.FromFile方法将图片加载到PictureBox控件中显示。