如何使用 C# 中的 SaveFileDialog 将字节数组另存为 png 文件
本文关键字:数组 字节数 另存为 png 文件 字节 何使用 中的 SaveFileDialog | 更新日期: 2023-09-27 18:34:07
基本上,我有一个程序可以从本地计算机保存图像。我预览这个图像作为大尺寸。我有此预览弹出窗口上的"另存为"按钮。我的问题是,图像另存为 byte[],如何使用 SaveFileDialog 将 byte[] 另存为 png 文件?
谢谢
问题就这样解决了;
var saveFileDialog = new SaveFileDialog
{
DefaultExt = ".png",
DefaultFileName = this.ViewDetailSource.ManagedEntityName + " Image",
FilterIndex = 1,
Filter = "All Files|*.*"
};
bool? result = saveFileDialog.ShowDialog();
if (result.HasValue && result.Value)
{
using (var filestream = saveFileDialog.OpenFile())
{
filestream.Write(this.imagecapableentity.EntityImage, 0, this.imagecapableentity.EntityImage.Length);
}
}
实体图像是字节[]
谢谢大家,
SaveFileDialog 不是用来实际保存文件,而是用来收集有关创建文件过程的元信息。也就是说,它将帮助您收集文件路径以及用户是否取消了保存过程。
收集文件路径并知道用户可以保存文件后,您必须实际使用 File
类来创建文件:File.WriteAllBytes(...)
是一个很好的方法。
首先使用 SaveFileDialog: https://stackoverflow.com/a/5136341/787828
然后 byte[] 转换为图像并保存:https://stackoverflow.com/a/8946937/787828
只需使用 SaveFileDialog 提供的文件名创建一个 FileStream 实例,并调用其方法 Write 来写入 byte[]
SaveFileDialog
仅用于获取用户想要保存文件的名称,而不是用于实际保存。您可以改用它:
System.IO.File.WriteAllBytes(savedialog.FileName, bytearray);
savedialog
在哪里是你SaveDialog
,bytearray
是你的形象。
您可以使用
static void System.IO.File.WriteAllBytes(string path, byte[] bytes)
byte[] buffer = ... ;
File.WriteAllBytes(@"c:'*.png", buffer);