کاهش حجم تصویر در C#.NET

برای این منظور از کلاس System.Drawing.Imaging.ImageCodecInfo بهره می گیریم و متدهای زیر را به پروژه خوداضافه کرده و از آنها استفاده می نماییم. 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        public static void ImageQualityLevel()
        { 
            var bitmap = new System.Drawing.Bitmap(@"C:\TestPhoto.bmp");
            var imageEncoder = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
            var encoderType = System.Drawing.Imaging.Encoder.Quality;
            var encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
            var imageQuality = 50L;
            var parameter = new System.Drawing.Imaging.EncoderParameter(encoderType, imageQuality);

            encoderParameters.Param[0] = parameter;
            bitmap.Save(@"C:\TestPhotoQualityFifty.bmp", imageEncoder, encoderParameters);
            bitmap.Dispose();
        }

        private static System.Drawing.Imaging.ImageCodecInfo GetEncoder(System.Drawing.Imaging.ImageFormat format)
        {
            var codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders();

            foreach (var codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }
حالا کافیست مسیر فایل اصلی را مشخص کرده و از طریق متغیر imageQuality میزان کیفیت تصویر ایجاد شده نسبت به تصویر اصلی را مشخص کنیم. این مقدار باید بین 0 تا 100 باشد.

همچنین برای کاهش حجم تصویر می توان از Encoderهای مختلفی مثل Bmp، Gif، Png، Tiff و Jpeg استفاده کرد. اما بهترین فشرده سازی معمولا توسط Jpeg صورت می گیرد و ما هم در متد ImageQualityLevel از این Encoder استفاده کرده ایم. در نهایت فایل تصویر فشرده سازی شده را در محل دلخواه و با فرمت مدنظر ذخیره می نماییم.

برای دریافت اطلاعات بیشتر می توانید به وب سایت مایکروسافت مراجعه نمایید.


آخرین بروزرسانی
۱۶ اسفند ۱۴۰۲ 
تعداد کلیک
۵,۶۷۱
کلیه حقوق این وب سایت متعلق به رادکام می‌باشد.