这是我第一次在ASP.NET Core中调整图像大小,经过一番研究,我发现下面的方法最简单、最有效,因此我就按照下面所示进行了实现。
然而,我不确定这种方法是否最有效,因为它存在两个问题,如下所述:
然而,我不确定这种方法是否最有效,因为它存在两个问题,如下所述:
- 图像失去了很多质量
- 在Visual Studio中出现了一个“警告”,只要我是唯一开发者就可以了,但如果其他人开发,情况就不同了 -
因此,我想知道还有哪些更好的方法可以解决这两个问题中的至少第一个。所有平台都可以访问该调用站点。“Bitmap”仅在Windows上受支持。
public async Task<IActionResult> Add(AddCardFormModel card, List<IFormFile> ImageFile)
{
// ...
foreach (var image in ImageFile)
{
if (image.Length > 0 || image.Length <= (2 * 1024 * 1024))
{
var imagesToBeResized = Image.FromStream(image.OpenReadStream());
var resized = new Bitmap(imagesToBeResized, new Size(250, 350));
using (var stream = new MemoryStream())
{
resized.Save(stream, ImageFormat.Jpeg);
var cardData = new Card
{
Title = card.Title,
Description = card.Description,
ImageUrl = card.ImageUrl,
CategoryId = card.CategoryId,
ConditionId = card.ConditionId,
Price = card.Price,
DealerId = dealerId,
Image = stream.ToArray()
};
this.data.Cards.Add(cardData);
this.data.SaveChanges();
}
}
}
// ...
}