• 1405/06/27

اکستنشن ذخیره عکس + بهنیه سازی + convertor :

درود

 

ضمن حفظ کیفیت، حجم تصاویر رو کاهش میده و فرمت اونا رو تبدیل به webp میکنه تا سرعت لود سایت بیشتر بشه.

متود Async هستش.

    public static class ImageExtensions
    {
        /// <summary>
        /// ذخیره‌سازی تصویر به صورت WebP
        /// مسیر ورودی باید به شکل زیر باشد:
        /// "wwwroot/example/*****/*****"
        /// </summary>
        public static async Task<string> SaveAsWebpAsync(this IFormFile? file, string path)
        {
            if (file == null) return "no-image.png";

            if (!path.StartsWith("wwwroot"))
                throw new Exception("مسیر باید با 'wwwroot/' شروع شود. مثال: wwwroot/uploads/products/");

            var imageName = NameGenarator.GenerateUniqName() + ".webp";
            var savePath = Path.Combine(Directory.GetCurrentDirectory(), path, imageName);

            await using var stream = file.OpenReadStream();
            using var image = new MagickImage(stream);

            image.Format = MagickFormat.WebP;
            image.Quality = 60;

            image.Settings.SetDefine(MagickFormat.WebP, "method", "4");

            if (image.Width > 1600 || image.Height > 1600)
            {
                image.Resize(new MagickGeometry(1600, 1600)
                {
                    IgnoreAspectRatio = false
                });
            }

            image.Settings.SetDefine(MagickFormat.WebP, "lossless", "false");

            await image.WriteAsync(savePath);

            return imageName;
        }
    }
  • 1405/06/27
  • ساعت 17:34

چقدر خوب و عالی 

ممنون با ما به اشتراک گذاشتید