برای این منظور از کلاس 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; }
همچنین برای کاهش حجم تصویر می توان از Encoderهای مختلفی مثل Bmp، Gif، Png، Tiff و Jpeg استفاده کرد. اما بهترین فشرده سازی معمولا توسط Jpeg صورت می گیرد و ما هم در متد ImageQualityLevel از این Encoder استفاده کرده ایم. در نهایت فایل تصویر فشرده سازی شده را در محل دلخواه و با فرمت مدنظر ذخیره می نماییم.
برای دریافت اطلاعات بیشتر می توانید به وب سایت مایکروسافت مراجعه نمایید.