如何使用 saveFileDialog 在 C# 中保存图像? [复制]

Posted

技术标签:

【中文标题】如何使用 saveFileDialog 在 C# 中保存图像? [复制]【英文标题】:How to use saveFileDialog for saving images in C#? [duplicate] 【发布时间】:2012-06-15 17:09:43 【问题描述】:

可能重复:Issue while saving image using savefiledialog

我在 C# 中使用 Windows 窗体。我应该如何使用 saveFileDialog?我有图片框,图片框上有一张图片,我想保存它。加载的图像是 bmp。我想将其保存为 4 种格式之一:bmp、jpeg、png、tiff。我阅读了一些关于 MDSN 的注释并尝试了它,但我可能做错了什么。所以我最好问问应该怎么写? 应该如何编写方法 private void saveFileDialog1_FileOk(object sender, CancelEventArgs e) 以及应该如何编写属性 saveFileDialog.Filter? 谢谢

编辑: 我试过的:Issue while saving image using savefiledialog

EDIT2: 我试过这个过滤器

Filter = bmp (*.bmp)|*.bmp|jpeg (*.jpeg)|*.jpeg|png (*.png)|*.png|tiff (*.tiff)|*.tiff

【问题讨论】:

***.com/questions/11053398/… 因为你没有描述你尝试了什么以及出了什么问题。您只是要求我们为您编写代码。 @comecme 如果我这样做了,没有人回应......所以我尝试了这种方式。我编辑了我的帖子,如果你点击链接,你可以看到我做了什么。 @user1097772:请不要重复同样的问题。如果您没有得到答案,请编辑您的原始问题。 所以,因为你在半小时内没有得到答案,所以你重新发布了这个问题。就个人而言,我不会那样做。 【参考方案1】:

您可以像这样使用 SaveFileDialog:

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Images|*.png;*.bmp;*.jpg";
ImageFormat format = ImageFormat.Png;
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

    string ext = System.IO.Path.GetExtension(sfd.FileName);
    switch (ext)
    
        case ".jpg":
            format = ImageFormat.Jpeg;
            break;
        case ".bmp":
            format = ImageFormat.Bmp;
            break;
    
    pictureBox1.Image.Save(sfd.FileName, format);

【讨论】:

谢谢大佬,我试试。你能告诉我这个过滤器有什么问题吗?过滤器 = bmp (.bmp)|.bmp|jpeg (.jpeg)|.jpeg|png (.png)|.png| tiff (.tiff)|.tiff 您在过滤器的第二部分缺少 *。 是的,但是我有这个论坛 * 但是当我粘贴它时 * 消失了,所以我将它复制到我的问题中;) +1 来自我只是因为您的答案被选中,但没有被投票... 修正错误:string ext = System.IO.Path.GetExtension(sfd.FileName).ToLower();

以上是关于如何使用 saveFileDialog 在 C# 中保存图像? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何避免 SaveFileDialog C# 中的文件名验证

C# winform 程序,在用SaveFileDialog选择完路径后,主界面如何置顶?

在 C# 中使用 SaveFileDialog 保存为特定文件格式

C# Open/SaveFileDialog 使用不同的文件系统

如何从 SaveFileDialog.FileName 仅获取目录名称

c# savefiledialog 保存特定长度的文本