调整HttpFile类型的图像大小

时间:2018-05-18 06:48:02

标签: c# asp.net-mvc

我正在尝试使用C#中的API将图像上传到服务器,但在上传之前,我希望调整图像大小。下面是我用来上传图片而不调整大小的代码。

private dynamic UploadImage(dynamic parameters)
{
    var files = Request.Files;        
    var isProfilePic = Request.Form["IsProfileImage"].Value;
    string virImgpath = string.Empty;

    if (files.Count() > 0)
    {
        HttpFile file = files.FirstOrDefault();
        string _imgname = string.Empty;

        if (file.Value != null)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                //code to upload
            }

            _userRepository.SaveImage(CurrentUser.Id, (isProfilePic == "true"), _imgname); // virImgpath
            if (isProfilePic == "true")
            {
                CurrentUser.ProfileImage = virImgpath;
            }
            else
            {
                CurrentUser.BackgroundImage = virImgpath;
            }
        }
    }

    return Response.AsJson(virImgpath);
}

现在,我正在尝试通过添加以下代码来实现调整大小功能。

WebImage img = files.FirstOrDefault();
img.Resize(1000, 1000);
files = (IEnumerable<HttpFile>)img;

问题是该文件属于HttpFile类型,Resize方法需要WebImage类型的对象。

1 个答案:

答案 0 :(得分:0)

您可以使用构造函数传入流

来创建新的WebImage
var webImage = new WebImage(file.InputStream);

webImage.Resize(...,...,...,...);

https://msdn.microsoft.com/en-us/library/gg537958(v=vs.111).aspx