使用WebImage更改图像格式

时间:2015-03-16 06:00:59

标签: asp.net asp.net-mvc image

我是asp.net的新手,我正在使用asp.net mvc 4创建一个网站,用户可以上传任何类型的图像(png,jpeg,gif),但系统会将图像保存为png格式。我使用WebImage帮助器。到目前为止,上传工作正常,但只要系统保存图像,文件名就像这样Filename.png.jpeg。这是我在Controller中的代码,

if (file != null && file.ContentLength > 0)
{
    string picName = "FileName";
    WebImage img = new WebImage(file.InputStream);
    if (img.Width > 265 || img.Height > 158)
    {
        img.Resize(265, 158);
    }
    string picExt = Path.GetExtension(file.FileName);
    if (picExt == ".jpg")
    {
        picExt = ".png";
    }
    string path = System.IO.Path.Combine(Server.MapPath("~/Images/"), picName + picExt);
    img.Save(path);
}

无论用户上传任何格式的图片,如何将图片保存为png格式?非常需要这个帮助。 TNX。

2 个答案:

答案 0 :(得分:1)

我有同样的问题,我只是告诉它忽略正确的扩展强制。 第三个参数是bool forceCorrectExtension,默认情况下为true。自手动设置扩展名以来,您不需要第二个参数。

img.Save(path,null,false);

答案 1 :(得分:0)

刚遇到同样的问题。请看这里: WebImage.Save Method

科宁是正确的一半,它可能会那样工作。但是,第二个参数实际上告诉它保存的格式为:

  

imageFormat
类型:System.String
图像文件时使用的格式   已保存,例如" gif"或" png"。

jpeg不会因为你改变扩展而成为一个png。除非Save方法知道基于扩展名(???)重新格式化,否则我宁愿做出谨慎的错误:

img.Save(path, "png", false);