首页 > 解决方案 > ASP.NET Core 图像调整大小

问题描述

我正在尝试调整想象的大小,System.Drawing但是IFormFile当我使用该文件时,我System.Drawing会一直向我发出警告:cannot implicitly convert type 'System.Drawing.Bitmap' to 'Microsoft.AspNetCore.Http.IFormFile'。我需要调整这些照片的大小并将它们另存为,IFormFile但我不知道该怎么做。

public Task<IFormFile> ResizeImagine300x300(IFormFile file)
{
    Image image = Image.FromStream(file.OpenReadStream(), true, true);
    var newImage = new Bitmap(1024, 768);
    using (var g = Graphics.FromImage(newImage))
    {
        g.DrawImage(image, 0, 0, 1024, 768);
    };
    return newImage;//the point where i get the error
}

有可能以我的方式做到吗?

如果不可能,那么我应该遵循哪种方式?

感谢您的任何建议

编辑:我想作为一个返回,IFormFile因为我有一个将这些文件上传到我的数据库的方法。这是我的方法:

public async Task<FileRepo> FileUploadToDatabase(List<IFormFile> files)
{
    foreach (var file in files)
    {
        var fileName = Path.GetFileNameWithoutExtension(file.FileName);
        var fileExtension = Path.GetExtension(file.FileName);
        _fileRepo = new FileRepo
        {
            FileName = fileName,
            FileExtension = fileExtension,
            FileType = file.ContentType,
            CreatedDate= DateTime.Now
        };
        using (var dataStream = new MemoryStream())
        {
            await file.CopyToAsync(dataStream);
            _fileRepo.FileData = dataStream.ToArray();
        }
    }
    return _fileRepo;
}

之后,我将该_fileRepo变量上传到我的数据库,如下所示:

 var File = _fileUploader.FileUploadToDatabase(files);
 var FileResult = File.Result;
 FileResult.ProductID = ProductID;
 _unitOfWorkFR.RepositoryFileRepo.Create(FileResult);

标签: asp.netasp.net-mvcasp.net-coreimage-resizingasp.net-core-5.0

解决方案


推荐阅读