如何使用savefiledialog保存格式化的IMages?

时间:2016-02-02 17:50:17

标签: c# winforms

所以,我正在Windows Forms中创建一个项目,我必须在其中更改图像格式。我发现了不同的解决方案,例如: convert tiff to jpg format
c# convert image formats to jpg。 这些解决方案正在发挥作用,但它们都有一个相似之处:

image.Save(path,ImageFormat.Jpeg)

在此代码中,我将图像保存在一个目录中。我想要做的是用Savefiledialog保存这个格式化的图像。但在这种情况下,当我打电话给Savefiledialog时,我需要写'"图像"名称和格式。如果我不写这种格式,它会创建一个没有扩展名的简单文件。我想以指定的格式自动保存文件。那怎么办?

1 个答案:

答案 0 :(得分:0)

我会写一些简单的东西:

// might make sense to make this a property under the relevant class
Dictionary<string, ImageFormat> mapOfExtensions = 
    new Dictionary<string, ImageFormat>
    {
        {".jpg", ImageFormat.Jpeg},
        {".jpeg", ImageFormat.Jpeg},
        {".png", ImageFormat.Png}
    };

var ext = Path.GetExtension(path);

// safety check - make sure the file extension is what we expect...
if (!mapOfExtensions.Contains(ext)) 
{
    // probably would make sense to throw an error, log a message, etc.
    return;
}

image.Save(path,mapOfExtensions[ext]);