簡體   English   中英

在 asp.net 內核中調整圖像大小的正確方法是什么?

[英]What is the decent approach to resizing images in asp.net core?

這是我第一次在 asp.net 內核中調整圖像大小,所以經過一番研究,我發現這種方法是最簡單和最有效的,我實現了它,如下所示。 但是,我不確定這種方法是否是最有效的方法,因為它有兩個問題 go 如下

  1. 圖像質量下降很多
  2. 我在 Visual Studio 中得到這個“警告”,只要我是唯一一個開發它的人就可以了,但是如果其他人這樣做,情況並非總是如此 -

該呼叫站點可在所有平台上訪問。 僅 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();
                    }
                }
            }

            ...
        }

檢查此以調整圖像大小。

但我建議不要將圖像存儲在數據庫中,因為會增加數據庫大小和日志大小。

你有兩個選擇:

選項 1:將調整大小的圖像存儲在目錄中並將名稱保存在數據庫中。

選項2:將原始大小存儲在目錄中並實時調整大小。

System.Drawing.Common package 僅在 Windows 上受支持。

如果您希望您的應用程序跨平台工作,那么 Microsoft 建議遷移到以下庫之一:

https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only#recommended-action

您應該首先決定您將在項目中使用哪個圖像處理庫,然后尋找使用該特定庫調整圖像大小的最佳算法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM